Другие языки программирования и технологии

Как присвоить "ничто" или пустоту числу в c#?

Дело в том что в C# да и в . NET такого понятия не принято.
Есть значащие типы, и ссылочные типы.
Значащие типы уже имеют значение даже без инициализации. То есть

int a=0,b;
bool ravno = a==b;
переменная ravno будет true.

Между тем
a=null;
вызовет ошибку присвоения.

Ещё одна особенность. Нельзя создать ссылку на значащий тип, их можно изменять только в теле метода в который они попадают через параметр с ключевым словом ref.

В то же время в C++ и Delphi можно создать указатель на integer. И он может быть null.
Это как раз по вашему вопросу (чтобы не жаловались что я тут не о том писал) .

Когда в C# потребовались значимые типы с null значением, было введено Nullable < T > :
"Поддерживает тип значения, которому может быть присвоено значение null, как и ссылочному типу. Этот класс не наследуется. "

Nullable<int> x = 5;
x= null;

Синтаксически упростили До такого:
int? x=5;
x=null;

Это применяется при работе с SQL сервером. Там любой тип данных может быть null, и для поддержки работы с такими типами ввели Nullable < T >. Кстати Nullable < T > лишь "затычка", оно на самом деле это контейнер значения где лишь указано Null Оно или нет. А компилятор и IDE помогает, подсказывает что это простая переменная якобы способная быть Null.

Моё личное мнение - присвоение числу значения null требуется гораздо реже чем обращение к числу по ссылке. В С# null реализован только для классов. Следовательно многие алгоритмы отпадают, не надо надеяться на то что когда потребуется вы сможете работать с int как со ссылочным типом, или полноценным null.
Gagik Gevorkyan
Gagik Gevorkyan
10 716
Лучший ответ
int? number = null;
ТБ
Твой Бор
74 686
что за ничто? я шарп не знаю, но в с++ такого нет
Ix Ix
Ix Ix
36 751