Я сегодня играл с типом кастинга и наткнулся на что-то интересное. Компилятор C# не может использовать 0
или 1
для булевых типов данных. Например:Невозможно отличить 0 или 1 от булевого в C#
bool b = (bool)0;
вернет false (если он был в состоянии скомпилировать).
Здесь, кажется, нет никакой информации о потерях, поэтому мой вопрос в том, есть ли какая-то конкретная причина, что компилятор C# не позволяет вам это делать?
«вернет ложь (если бы она была в состоянии скомпилировать)» была бы тавтологией, если бы это была тавтология. –
http://stackoverflow.com/questions/6571312/cant-cast-int-to-bool – TGH
Используйте 'Convert.ToBoolean()' для «слабо типизированных» преобразований. – millimoose