Вы увеличиваете ноль ???
int? a = null;
a++;
Этот оператор просто означает, null++
например, null + 1.
Согласно этому документу тип, допускающий значение NULL, может представлять правильный диапазон значений для своего базового типа значения плюс дополнительное значение NULL. Nullable, произносится как «Nullable of Int32», может быть присвоено любое значение от -2147483648 до 2147483647, или оно может быть присвоено нулевое значение
Здесь вы увеличиваете значение null, тогда оно также станет нулевым значением, а не 0 или любым другим целым числом.
Почему вместо ошибки отображается пустой?
когда вы печатаете тип, допускающий значение NULL, с нулевым значением, он печатает пустой вместо ошибки, потому что вы печатаете переменную, то есть значение ячейки памяти. который может быть нулевым или любым целым числом.
Но когда вы пытаетесь напечатать null с помощью Console.WriteLine(null)
, поскольку null не является переменной, поэтому он не ссылается ни на одну ячейку памяти. Следовательно, это дает ошибку "NullReferenceException"
.
Тогда как вы можете напечатать любое целое число, используя Console.WriteLine(2);
??
В этом случае 2 попадет в память во временном месте, а указатель указывает на эту ячейку памяти для печати.
++
,+=
и+
подняли варианты. Следовательно, все утвержденияa++;
,a += 1;
иa = a + 1;
разрешены. Каждый производитnull
(без исключения) еслиa
изначальноnull
.