创建对象帮助数组

时间:2010-02-25 12:03:39

标签: c# arrays

我有以下课程。在尝试使用以下代码设置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;}
}

2 个答案:

答案 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;

        }
    }

如果您不知道数组将保留的测试对象的数量,请考虑使用ListArrayList

编辑。列表示例:

    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; }
    }