C# C类引用同一个类是否正确?

C# C类引用同一个类是否正确?,c#,C#,正在学习C,可以在下面的代码片段中找到 class Item { public string Name; public Item Parent; } 下面这行的意思是什么,它和一个类有相同的名称 公共项目母公司 让我们从您理解的行开始: public string Name; // ^ ^ ^ // | | | // | | +-- Name of the field // | +--------

正在学习C,可以在下面的代码片段中找到

 class Item
    {
      public string Name;
      public Item Parent;
    }
下面这行的意思是什么,它和一个类有相同的名称


公共项目母公司

让我们从您理解的行开始:

public string Name;
//  ^    ^     ^
//  |    |     |
//  |    |     +-- Name of the field
//  |    +-------- Type of the field
//  +------------- Accessibility of the field
因此,我们有一个名为Name的字段,它是string类型的,并且是公共的

现在

public Item Parent;
//  ^    ^     ^
//  |    |     |
//  |    |     +-- Name of the field
//  |    +-------- Type of the field
//  +------------- Accessibility of the field
我们有一个名为Parent的字段,它的类型为Item,并且是公共的

哪个与类同名

不,没有。它与类具有相同的类型。这是完全有效的,因为类是引用类型

它所说的是,一个项目可以有一个父项,这也是一个项目


也就是说,一个项目有一个或没有父项,我们还推断它没有、有一个或多个子项。我们可以把它看作一个层次结构,从叶子到根都具有可导航性,可能有多个根。然而,没有什么可以阻止循环。是的,我们也可以把它当作一个链表。

这个C语法正确吗?为什么不呢?没有任何关于拥有相同类类型的类成员的禁令。任何这样的限制充其量都是任意的,并且会严重限制可以用特定语言建模的数据和关系的类型。这意味着类项包含类型项的字段。这在创建(比如)链表实现时很常见。