JoeSmith3100
@JoeSmith3100
Начинающий программист C#

Как проверить переменную любого ссылочного типа на null?

Имеются ввиду и объекты и строки и массивы и т.п.

что то вроде
if (refTypeParam == null)
неизменно выбрасывает исключение
  • Вопрос задан
  • 482 просмотра
Пригласить эксперта
Ответы на вопрос 3
@res2001
Developer, ex-admin
По стандарту ссылка не может указывать на несуществующий объект (NULL), поэтому, если вы сделаете так:
if (&refTypeParam == null)
Компилятор запросто может выкинуть этот код в процессе оптимизации, т.к. условие по стандарту никогда не выполнится.
Вещи типа этой:
int &v = *(int*)NULL;
это неопределенное поведение по стандарту. Но на сколько я знаю, такое вполне прокатывает.
https://stackoverflow.com/questions/4364536/is-nul...
Ответ написан
Имеются ввиду и объекты и строки и массивы и т.п.

Кажется, у вас немного каша в голове. В C++ все типы передаются по значению.
Для передачи по ссылке используются ссылки (&) и указатели.
Вот указатель можно сравнить с nullptr, а любое другое значение не может быть null-ом.
Ответ написан
Комментировать
@maximsemin23
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы