NULL под капотом - C#/.NET 4.x

Узнай цену своей работы

Формулировка задачи:

Сегодня увидел для себя кое что новое и вот не знаю даже как это гуглить))) Может кто знает "как это работает" и просто объяснит "что да как" или подскажет статью на эту тему. В общем - мастерил тут свич (обычный без всяких забубунов). Поймал себя на мысли о том что "в свич же нельзя пихать null". Запихнул для проверки и увидел ошибку и как бы всё ок, а дальше подумал что там же строки могут быть... строки тип-ссылки, ссылке могут быть null, а то есть свич сломается?! Проверил и всё ок. То есть, в свич null пихать нельзя, а в строке null можно пихнуть.

Вопрос:

в чём разница между
null
и (значением переменной "а" из моего примера)
string a = null;
И ещё добавлю, что бы избежать бессмысленных ответов - я понимаю что там строка, строка эт тип, тип имеет размер, размер в куче выделяется и пошло поехало... но значение то при null в этом типе это же null, так почему же свич на него ругается. Ну с таким же успехом можно было бы запретить писать while(true) и кричать "это же бессмыслен! это же бесконечность!"...

Решение задачи: «NULL под капотом»

textual
Листинг программы
string a = Console.ReadLine();
switch (a)
{
    case "Hello":
        Console.WriteLine(a);
        break;
    case null:
        Console.WriteLine("Null");
        break;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы