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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д