定义我的类 X 时在类 X 中声明类型 X 的变量

问题描述

我知道标题不清楚,但对不起我的英语我没有找到如何表述我的问题。所以我希望我能在下面进一步解释。

事实上,我正在阅读一段代码,其中用户在定义一个类(我们称之为 X)时,他声明了一个 X 表(在类定义中)。

来自 C++,这是不可能的,因为类型 X 在那个阶段是不完整的。

还有另一个问题:在ctor中,用户分配了10个元素,因此认为这可能是一个无限循环,因为对于X的每个实例,我们允许10个元素,但事实并非如此!

C# 是否允许这种行为?

//here we start the class deFinition
class X
{
    X[] Items = null;  // and here we declare a table of X elements ???

    public X()
    {
        Items = new X[10];  // and here we allocate 10 elements of X  ???
    }
}

解决方法

在 C# 中,类型不完整是没有问题的。

另一方面,我明白你所说的无限循环是什么意思。但事实也并非如此,因为只分配了数组(在C++中是指针数组),所以这些指针都是NULL,不调用默认构造函数。