我在MSDN上读到:null关键字是一个表示空引用的文本,1指的不是任何物体。但我看到以下代码运行时没有抛出任何异常:int? i = null;var s = i.ToString();因此,如果变量i为null,为什么我可以执行它的方法? 最佳答案 因为int?实际上是一个Nullable<Int32>,Nullable<T>是一个struct,是一个cannot be null结构。正是AA>它们不是参考值,所以它们不能为空,但是当它们被认为等于NULL时,它们可以有一个状态。您可以在Nullable types work.和how are nullable types implemented under the hood in .net?中获得关于Nullable<T>实现的更多细节。然而,正如@ JeppeStigNielsen所指出的,当你得到一个NRE的时候,有一个例子:但是:当被绑定到引用类型时,对nullable确保我们确实得到了一个真正的空引用。例如i.getType()和i一样,如果空引用异常。这是因为这个方法是在对象且不可重写关于c# - 如何在int上执行方法?是否设置为null而没有NullReferenceException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41837684/ 10-13 02:51