这是我的班级人员
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";
答案 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];
例如......