Лучший способ конвертировать int в логическое
Входное значение int
состоит только из 1 или 0. Я могу решить проблему, написав оператор if else
.
Разве нет способа преобразовать int
в boolean
?
Ответы
Ответ 1
Я предполагаю, что 0
означает false
(что имеет место во многих языках программирования). Это означает, что true
- это not 0
(некоторые языки используют -1
, некоторые другие используют 1
; не мешает быть совместимым с любым из них). Итак, если под словом "лучше" вы подразумеваете меньше печатания, вы можете просто написать:
bool boolValue = intValue != 0;
Ответ 2
int i = 0;
bool b = Convert.ToBoolean(i);
Ответ 3
Шутя в сторону, если вы только ожидаете, что ваше входное целое будет равным нулю или одному, вы действительно должны проверить, что это так.
int yourInteger = whatever;
bool yourBool;
switch (yourInteger)
{
case 0: yourBool = false; break;
case 1: yourBool = true; break;
default:
throw new InvalidOperationException("Integer value is not valid");
}
Исходящий из коробки Convert
не проверяет это; и не будет yourInteger (==|!=) (0|1)
.