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

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

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

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

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

Ответы на вопрос(6)

Ваш ответ на вопрос