int n == 0;
if (n == null)
{
Console.WriteLine("......");
}
Верно ли, что результат выражения (n == 0
) всегда неверен, поскольку значение типа int
никогда не равно null
типа int?
int n == 0;
if (n == null)
{
Console.WriteLine("......");
}
Верно ли, что результат выражения (n == 0
) всегда неверен, поскольку значение типа int
никогда не равно null
типа int?
Если вы хотите, чтобы ваша целочисленная переменная допускала нулевые значения, объявите ее допустимым типом:
int? n = 0;
Обратите внимание на ?
после int, что означает, что тип может иметь значение null
. Нулевые типы были введены с v2.0.NET Framework.
В С# с использованием неинициализированной переменной не разрешается.
Итак,
int i;
Console.Writeline(i);
Результаты ошибки компиляции.
Вы можете инициализировать int новыми, например:
int anInt = new int();
Это приведет к Значение по умолчанию для int, которое равно 0. В тех случаях, когда вы хотите иметь общий int
, можно сделать int nullable с помощью синтаксис
int? nullableInt = null;
Потому что int
- это тип значения, а не ссылочный тип. Спецификация языка С# не позволяет содержать int
значение null. Попробуйте выполнить компиляцию этого утверждения:
int x = null ;
и посмотрите, что вы получаете.
Вы получаете предупреждение компилятора, потому что это бессмысленный тест, и компилятор его знает.
"Типы значений" в .NET(например, int, double и bool) по определению не могут быть нулевыми - они всегда имеют назначенное фактическое значение. Для хорошего ввода значений типов или ссылочных типов просмотрите http://www.albahari.com/valuevsreftypes.aspx
Очень просто, int - это очень простой элемент. Он маленький и простой, так что его можно быстро обработать. Он обрабатывается как значение напрямую, а не по модели объекта/указателя. Таким образом, нет никакого юридического значения "NULL" для него. Он просто содержит то, что он содержит. 0 означает a 0. В отличие от указателя, где он равен 0, будет NULL. Объект, хранящий 0, будет иметь ненулевой указатель.
Если у вас есть такая возможность, найдите время, чтобы выполнить старую школу C или сборку, она станет намного понятнее.
Использование NULL применяется к указателям и ссылкам в целом. Значение 0, назначенное целому числу, не равно нулю. Однако, если вы можете назначить указатель на целое число и назначить его NULL, утверждение действительно.
Подводя итог = >
/*Use the keyword 'null' while assigning it to pointers and references. Use 0 for integers.*/
Нет, потому что int
- тип значения. int
- это тип Value
типа Date
, double
и т.д. Таким образом, невозможно назначить значение null
.