代码之家  ›  专栏  ›  技术社区  ›  Sam

nullreferenceexception[重复]是什么意思?

c#
  •  3
  • Sam  · 技术社区  · 17 年前

    可能重复:
    What is a NullReferenceException in .NET?

    例如, System.NullReferenceException “未处理”,消息为“对象引用未设置为对象的实例”。

    这个异常是什么意思,怎么解决?

    6 回复  |  直到 13 年前
        1
  •  14
  •   Community Mohan Dere    9 年前

    这意味着您试图访问不存在的某个成员:

    string s = null;
    int i = s.Length; // boom
    

    只需修复空的东西。要么使其非空,要么先执行空测试。

    还有一个 corner-case 这里与 Nullable<T> ,泛型和 new 通用约束-虽然有点不太可能(但见鬼,我碰到了这个问题!).

        2
  •  8
  •   Thomas Levesque    17 年前

    这是.NET中最常见的异常…它只是意味着你试图调用一个未初始化变量的成员(空)。您需要先初始化此变量,然后才能调用其成员

        3
  •  2
  •   Lloyd    13 年前

    意思是你在引用 null ,例如:

    class Test
    {
    
       public object SomeProp
       {
          get;
          set;
       }
    
    }
    
    new Test().SomeProp.ToString()
    

    SomeProp 将为空,并应抛出 NullReferenceException . 这通常是由于您调用的代码希望有一些不存在的东西。

        4
  •  1
  •   Fredrik Mörk    17 年前

    这意味着您试图在尚未初始化变量时使用对象的方法或属性:

    string temp;
    int len = temp.Length; // throws NullReferenceException; temp is null
    
    string temp2 = "some string";
    int len2 = temp2.Length; // this works well; temp is a string
    
        5
  •  1
  •   Henk Holterman    17 年前

    下面的代码将向您显示异常和一条线索。

    string s = null;
    s = s.ToUpper();
    
        6
  •  1
  •   Matt Jacobsen    17 年前

    在代码中的某个地方,有一个对象引用,但它没有设置为对象的实例:)

    在某个地方你使用了一个对象而没有调用它的构造函数。

    你应该做什么:

    MyClass c = new MyClass();
    

    你所做的:

    MyClass c;
    c.Blah();