创建 class 数组时,其成员仍未实例化

When creating a class array its members are still not instantiated

抱歉这个愚蠢的问题!

为什么会出现 NullReferenceException:对象引用未设置到对象的实例?

public class myTestClass
{
    public string testString;
}

public class Test : MonoBehaviour
{
    public myTestClass[] testedClassObject;

    private void Start()
    {
        testedClassObject = new myTestClass[2];
        testedClassObject[0].testString = "test";  // --> Error
    }
}

我想我 class 中的字符串需要一个构造函数,但它应该是什么样子?

当你创建一个数组时,内容被擦除为零,这对于引用意味着:所有引用都是null(创建一个数组或引用不会同时为数组中的每个元素创建对象) .因此,您需要明确地为内容创建对象。例如:

testedClassObject = new myTestClass[2];
testedClassObject[0] = new myTestClass { testString = "test" };

或者更方便:

testedClassObject = new [] {
    new myTestClass { testString = "test" },
    // etc  
};

同时执行数组和内容初始化(并为您推断长度)。