我熟悉C#规范的5.3节,其中说必须在使用前分配一个变量。
在C和非托管C ++中,这是有道理的,因为不会清除堆栈,并且用于指针的内存位置可能在任何地方(导致难以跟踪错误)。
但是我给人的印象是运行时并没有真正“未分配”的值。特别是,未初始化的引用类型将始终具有null值,永远不会具有先前调用方法或随机值后遗留下的值。
这是正确的吗?还是我错误地认为这些年来检查空值就足够了?您可以在C#中使用真正的非初始化变量吗,还是CLR会处理这个问题,并且总是设置了一些值。
牛魔王的故事
相关分类