C# 继承类数组

C# 继承类数组,c#,unity3d,C#,Unity3d,第一张图片是我的家长班级: 它所做的只是将header设置为“defaultheader”,并创建类型为LevelData的新数组。当我调用Setup()时,被重写的子方法将按我所希望的方式调用。在Setup()方法的子类中,当我打印标题时,它会像应该的那样显示“默认标题”。当我打印数组的长度时,它表示应该是10 但是当我试图访问数组时,我得到了一个对象引用错误。为什么我可以访问数组的头和长度,但不能访问数组本身 这是孩子: 创建数组时,所有数组元素都初始化为default(T),其中T是元素

第一张图片是我的家长班级:

它所做的只是将header设置为“defaultheader”,并创建类型为
LevelData
的新数组。当我调用
Setup()
时,被重写的子方法将按我所希望的方式调用。在
Setup()
方法的子类中,当我打印标题时,它会像应该的那样显示“默认标题”。当我打印数组的长度时,它表示应该是10

但是当我试图访问数组时,我得到了一个对象引用错误。为什么我可以访问数组的头和长度,但不能访问数组本身

这是孩子:


创建数组时,所有数组元素都初始化为
default(T)
,其中
T
是元素类型。对于引用类型(类是引用类型),它总是
null
<代码>字符串也是一种引用类型。对于数值类型,
默认值(T)
始终是值
0
。所有其他类型的初始化均将所有位设置为
0

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

for (int i = 0; i < levels.Length; i++) {
    levels[i] = new LevelData();
}
for(int i=0;i
请注意,类可能没有默认构造函数,即没有参数的构造函数。类可能根本没有公共构造函数,只能通过工厂方法实例化。那么,如何使用非空条目自动初始化数组


请参阅:

创建数组时,所有数组元素都初始化为
default(T)
,其中
T
是元素类型。对于引用类型(类是引用类型),它总是
null
<代码>字符串
也是一种引用类型。对于数值类型,
默认值(T)
始终是值
0
。所有其他类型的初始化均将所有位设置为
0

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

for (int i = 0; i < levels.Length; i++) {
    levels[i] = new LevelData();
}
for(int i=0;i
请注意,类可能没有默认构造函数,即没有参数的构造函数。类可能根本没有公共构造函数,只能通过工厂方法实例化。那么,如何使用非空条目自动初始化数组


请参阅:

不要发布代码的图片。删除图像并发布实际代码。您可以突出显示它,然后按工具栏中的
{}
,以修复格式错误。请将代码粘贴为文本,而不是图像。是否有人提到不要将代码作为图像插入?您的数组已初始化,但数组中的项都为空。请勿发布代码图片。删除图像并发布实际代码。您可以突出显示它,然后按工具栏中的
{}
,以修复格式错误。请将代码粘贴为文本,而不是图像。是否有人提到不要将代码作为图像插入?您的数组已初始化,但数组中的项均为空