继承类数组

时间:2017-04-27 20:50:12

标签: c# unity3d

在第一张照片中是我的父类:

enter image description here

它只是将标题设置为“默认标题”并创建类型为LevelData的新数组。当我调用Setup()时,被调用的子方法被调用,因为我想要它。在Setup()方法的子类中,当我打印标题时,它会显示“默认标题”。当我打印数组的长度时,它应该说10。

但是当我尝试访问数组时,我得到一个Object引用错误。为什么我可以访问数组的头部和长度而不是数组本身?

这是孩子:

enter image description here

1 个答案:

答案 0 :(得分:2)

创建数组时,所有数组元素都初始化为default(T),其中T是元素类型。对于引用类型(类是引用类型),这始终是nullstring也是一种引用类型。对于数字类型,default(T)始终为值0。所有其他类型都初始化,所有位都设置为0

如果希望数组包含元素,则必须初始化每个条目:

for (int i = 0; i < levels.Length; i++) {
    levels[i] = new LevelData();
}

请注意,类可能没有默认构造函数,即没有参数的构造函数。类可能根本没有公共构造函数,只能通过工厂方法实例化。那么如何使用非null条目自动初始化数组呢?

请参阅:Arrays (C# Programming Guide)