Я знаком со спецификацией C #, раздел 5.3 , в которой говорится, что переменная должна быть назначается перед применением.
В C и неуправляемом C ++ это имеет смысл, поскольку стек не очищается, а место в памяти, используемое для указателя, может быть где угодно (что приводит к трудностям для отслеживания ошибки).
Но у меня сложилось впечатление, что не существует действительно «неназначенных» значений, допускаемых средой выполнения. В частности, ссылочный тип, который не инициализирован, всегда будет иметь нулевое значение, а не значение, оставшееся после предыдущего вызова метода или случайное значение.
Верно ли это, или я ошибочно полагал, что все эти годы достаточно проверки на нуль? Есть ли у вас действительно неинициализированные переменные в C #, или CLR позаботится об этом, и всегда есть НЕКОТОРЫЕ значение.