Как отличить Null или Empty ? по каким критериям обрабатываются Null и Empty?

#c# #compiler-construction #programming-languages #null

#c# #компилятор-конструкция #программирование-языки #null

Вопрос:

Привет всем пользователям SO, у меня небольшая путаница с пониманием null и Empty. Я знаю, что null — это особый случай, который не равен самому себе. Я хочу знать, как определить, что оно равно null, на каком основании вы говорите, что оно равно null, и то же самое для empty также

  1. Это основано на распределении памяти или что?
  2. Если тогда как память, выделенная для null.
  3. Если он пустой, то какой критерий подходит для того, чтобы он был «ПУСТЫМ».

Просто я хочу знать, как компилятор узнает, что это NULL или Empty.

Комментарии:

1. «null не равно самому себе», это относится только к SQL, а не к C#

Ответ №1:

null это специальная ссылка, которая означает «не ссылаться ни на что»

Empty применяется только к коллекциям (а строка — это коллекция символов). Это означает, что существует допустимая коллекция, но она не содержит (0) элементов.

При возврате коллекции обычно лучше возвращать пустую коллекцию вместо null.

При получении коллекции решите null , следует ли рассматривать ее как пустую коллекцию. Это зависит от ситуации, достигнутых соглашений и обещаний и т. Д.

я знаю, что null — это особый случай, который не равен самому себе

Не совсем верно. null == null всегда верно.

Комментарии:

1. ОК. еще одна вещь, можете ли вы рассказать мне, как компилятор узнает, является ли оно null или empty? на каком основании это различает оба.

2. Ничего особенного … null это специальная (предопределенная) ссылка. На пустую коллекцию ссылается допустимая ненулевая ссылка и имеет Count==0