Подтвердить что ты не робот

Почему тип "int" никогда не равен "null"?

int n == 0;

if (n == null)    
{  
    Console.WriteLine("......");  
}

Верно ли, что результат выражения (n == 0) всегда неверен, поскольку значение типа int никогда не равно null типа int?

4b9b3361

Ответ 1

Если вы хотите, чтобы ваша целочисленная переменная допускала нулевые значения, объявите ее допустимым типом:

int? n = 0;

Обратите внимание на ? после int, что означает, что тип может иметь значение null. Нулевые типы были введены с v2.0.NET Framework.

Ответ 2

В С# с использованием неинициализированной переменной не разрешается.

Итак,

int i;
Console.Writeline(i);

Результаты ошибки компиляции.

Вы можете инициализировать int новыми, например:

int anInt = new int();

Это приведет к Значение по умолчанию для int, которое равно 0. В тех случаях, когда вы хотите иметь общий int, можно сделать int nullable с помощью синтаксис

int? nullableInt = null;

Ответ 3

Потому что int - это тип значения, а не ссылочный тип. Спецификация языка С# не позволяет содержать int значение null. Попробуйте выполнить компиляцию этого утверждения:

int x = null ;

и посмотрите, что вы получаете.

Вы получаете предупреждение компилятора, потому что это бессмысленный тест, и компилятор его знает.

Ответ 4

"Типы значений" в .NET(например, int, double и bool) по определению не могут быть нулевыми - они всегда имеют назначенное фактическое значение. Для хорошего ввода значений типов или ссылочных типов просмотрите http://www.albahari.com/valuevsreftypes.aspx

Ответ 5

Очень просто, int - это очень простой элемент. Он маленький и простой, так что его можно быстро обработать. Он обрабатывается как значение напрямую, а не по модели объекта/указателя. Таким образом, нет никакого юридического значения "NULL" для него. Он просто содержит то, что он содержит. 0 означает a 0. В отличие от указателя, где он равен 0, будет NULL. Объект, хранящий 0, будет иметь ненулевой указатель.

Если у вас есть такая возможность, найдите время, чтобы выполнить старую школу C или сборку, она станет намного понятнее.

Ответ 6

Использование NULL применяется к указателям и ссылкам в целом. Значение 0, назначенное целому числу, не равно нулю. Однако, если вы можете назначить указатель на целое число и назначить его NULL, утверждение действительно.

Подводя итог = >

 /*Use the keyword 'null' while assigning it to pointers and references. Use 0 for integers.*/

Ответ 7

Нет, потому что int - тип значения. int - это тип Value типа Date, double и т.д. Таким образом, невозможно назначить значение null.