我有以下课程。在尝试使用以下代码设置employee类的值时,我收到错误消息:对象引用未设置为对象的实例。
我该如何解决?
public class Employee
{
public Test[] test{ get; set; }
public Employee()
{
this.test[0].Name = "Tom";
this.test[0].age= 13;
}
}
public class Test
{
public string Name {get; set;}
public int Age {get; set;}
}
答案 0 :(得分:1)
在尝试使用tham
之前,您应该创建一个数组和数组元素的实例例如
test = new Test[1]{new Test()};
或
test = new Test[1];
test[0] = new Test();
比你可以使用tham
this.test[0].Name = "Tom";
this.test[0].age= 13;
如果您希望数组实际包含构造的Test元素,那么您可以使用以下代码:
Test[] arrT = new Test[N];
for (int i = 0; i < N; i++)
{
arrT[i] = new Test();
}
答案 1 :(得分:1)
您需要创建一个测试变量实例,它是一个Test []对象数组,然后再为它们赋值。创建实例时,您必须设置它将保留的元素数。
public class Test
{
public string Name { get; set; } public int age { get; set; }
}
public class Employee
{
public Test[] test { get; set; }
public Employee()
{
test = new Test[1];
this.test[0] = new Test();
this.test[0].Name = "Tom";
this.test[0].age = 13;
}
}
如果您不知道数组将保留的测试对象的数量,请考虑使用List或ArrayList
编辑。列表示例:
public class Employee
{
public List<Test> test { get; set; }
public Employee()
{
this.test.Add(new Test());
this.test[0].Name = "Tom";
this.test[0].age = 13;
}
}
public class Test
{
public string Name { get; set; } public int age { get; set; }
}