为什么我会用这个多维数组得到“对象引用错误”?

时间:2012-07-15 15:21:31

标签: c# multidimensional-array nullreferenceexception

这是我的班级人员

 public class pax
    {
        public pax();

        [SoapElement(DataType = "integer")]
        public string age { get; set; }
        public string firstName { get; set; }
        public string lastName { get; set; }
        public string paxType { get; set; }
        public string title { get; set; }
    }

我已声明以下数组

pax[][]rooms=new pax[3][];

        rooms[0][0].paxType = "Adult";
        rooms[0][1].paxType="Adult";
        rooms[0][2].paxType="Child";
        rooms[0][2].age = "6";

抛出错误对象引用未设置为对象的实例。在线

 rooms[0][0].paxType = "Adult";

1 个答案:

答案 0 :(得分:4)

这只会给你数组。

pax[][]rooms=new pax[3][];

要实例化对象,您必须new

rooms[0][0] = new pax();

你可能会来自C ++并且可能认为对象数组会自动创建所有对象,但这不是这种情况 - 你必须创建每个对象,因为在你这样做之前它是null

编辑:

由于你在这里有锯齿状阵列:

pax[][]rooms=new pax[3][];
rooms[0]=new pax[3];
rooms[0][0]=new pax();

Jagged array =数组数组。如果你需要多维(二维数组),那就是不同的故事,你会说:

pax[,] rooms=new pax[3,3];

例如......