C # Опасны ли неинициализированные переменные?

Я знаком со спецификацией C #, раздел 5.3 , в которой говорится, что переменная должна быть назначается перед применением.

В C и неуправляемом C ++ это имеет смысл, поскольку стек не очищается, а место в памяти, используемое для указателя, может быть где угодно (что приводит к трудностям для отслеживания ошибки).

Но у меня сложилось впечатление, что не существует действительно «неназначенных» значений, допускаемых средой выполнения. В частности, ссылочный тип, который не инициализирован, всегда будет иметь нулевое значение, а не значение, оставшееся после предыдущего вызова метода или случайное значение.

Верно ли это, или я ошибочно полагал, что все эти годы достаточно проверки на нуль? Есть ли у вас действительно неинициализированные переменные в C #, или CLR позаботится об этом, и всегда есть НЕКОТОРЫЕ значение.

36
задан RBT 5 February 2018 в 08:37
поделиться