为什么“对象引用未设置为对象的实例”未引用变量名称或列?

时间:2018-12-04 09:05:05

标签: c# exception nullreferenceexception

如果一行上有多个变量,则总是猜测哪个可能为空。

有时,我故意将一个内联语句分成两个语句,这样我就可以更容易地理解如果发生异常,它所指的是什么变量。

但是我认为编译器仍然可以决定将这些行合并为一个“事物”吗?那么为什么它可以区分变量,但如果在一条语句中就不能呢?

我认为确实有一个很好的理由,但是要更好地理解编译器及其底层工作;为什么不能告诉我哪个变量(或列)导致了nullref异常?

\S+     # 1 or more any character that is not a space
@       # literally @
\S+     # 1 or more any character that is not a space

vs

// NullRefException pointing to this line
if ( GetSomeItemFromX().AmountOfLolCats > GetSomeItemFromY().AmountOfLolCats )
    return "yay";

一个典型的ASP.NET异常; // now I can see which method is causing problems int amountX = GetSomeItemFromX().AmountOfLolCats; int amountY = GetSomeItemFromY().AmountOfLolCats; if ( amountX > amountY ) return "yay"; 是哪一个?

enter image description here

我希望有人能教给我们有关编译器的基础知识,并更好地理解幕后发生的事情以及在该级别上所进行的权衡。

0 个答案:

没有答案