struct array中的数组上的Null引用异常

时间:2014-10-08 15:03:20

标签: c# arrays struct nullreferenceexception

我在Shapes[0].DamageofShape[0] = 7;收到空引用异常。我是否需要在某处进行另一次初始化?

   public struct TestArrayStruct
    {
        public int[] DamageofShape;
    }

class Program
    {

        static void Main(string[] args)
        {
            TestArrayStruct[] Shapes = new TestArrayStruct[5];

            Shapes[0].DamageofShape[0] = 7;
        }
     }

1 个答案:

答案 0 :(得分:4)

您需要初始化Shapes[0].DamageofShape 1 ,默认值为null

Shapes[0].DamageofShape = new int[4];

您也可以在构造函数中执行此操作:

public struct TestArrayStruct
{
    public int[] DamageofShape;

    public TestArrayStruct(int size)
    {
        this.DamageofShape = new int[size];
    }
}

然而,你 必须用构造函数实例化你的结构才能利用它:

Shapes[0] = new TestArrayStruct(4);
Shapes[0].DamageofShape[0] = 7;

<小时/> 1 以前的版本如果这个答案说你必须实例化Shapes[0],这是不正确的