//示例源码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()
{
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()
Resource[] array=new Resource[20];
之后加上如下:
for( int i = 0; i < array.Length; i++ )
array[i] = new Resource();
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()