2

这是我的班级人数

 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";
4

1 回答 1

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();

锯齿状数组 = 数组数组。如果您需要多维(二维数组),那就另当别论了,您会说:

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

例如...

于 2012-07-15T15:22:58.290 回答