//示例源码using System;class Resource
{
public int Data;
Resource()
{
Data=0;
}
}class Test
{
public static void Main()
{ Resource[] array=new Resource[20];
array[0].Data=100;
for(int i=0;i<=19;i++)
{
Console.WriteLine("{0}={1}",i,array[i].Data);
}
}
}//Unhandled Exception: System.NullReferenceException: Object reference not set to
//an instance of an object.
//   at Test.Main()

解决方案 »

  1.   


    Resource[] array=new Resource[20];
    之后加上如下:
    for( int i = 0; i < array.Length; i++ )
       array[i] = new Resource();
      

  2.   

    错在:Resource[] array=new Resource[20];Resource是class类型。因此,当上面语句执行后,array内容为:
    array[20] = {null, null, ... null}; // 共20个null。此时,array[0]为null。而null.Data就会被扔出 空引用的例外。------------
    改正:
    Resource[] array = new Resource[20]{ new Resource(), new Resource(), ... , new Resource()}; // 20个new Resource()