这可能是关于可空类型的问题的后续问题.
哪些可以为空的值类型(int?...)存储在内存中?首先,我认为它很清楚,Nullable<T>结构和那些是值类型.然后我找到了Jon Skeet的文章" Memory in .NET ",其中说:
请注意,值类型变量永远不能具有null值 - 它没有任何意义,因为null是引用类型概念,意味着"此引用类型变量的值根本不是对任何对象的引用" .
阅读本声明后,我有点困惑.所以,让我说我有int? a = null;.由于int通常是值类型,是它在某种程度上内部存储结构Nullable<T>在堆栈(我用"正常",因为我不知道值类型会发生什么,当它变成可为空)?或者其他任何事情发生在这里 - 也许在堆中?