同时在类体中使用类名

时间:2014-12-07 07:26:58

标签: c# class types

我不知道我的问题标题是否属实。无论如何:

为什么在下面的示例中,我们可以使用LinkedListNode类型作为我们的属性?因为类型是立即创建的,所以我们可以使用它,而无需实例化它?

public class LinkedListNode
{
    public LinkedListNode(object value)
    {
        this.Value = value;
    }

    public object Value { get; private set; }

    public LinkedListNode Next { get; internal set; }
    public LinkedListNode Prev { get; internal set; }
}

1 个答案:

答案 0 :(得分:0)

在您的示例中,属性(如下)

public LinkedListNode Next { get; internal set; }
public LinkedListNode Prev { get; internal set; }

不会自动创建,它们将为null,直到某些东西为它们分配实例化的LinkedListNode(在这种情况下,由于内部集合,内部需要设置它们)

但重点是,您可以创建具有与类相同类型的属性的类

你可以想到以下情况

public class user
{
   public string Name { get; set; }
   public string Address { get; set; }
   public User BestFriend { get; set; }
}

正如您所看到的,User可以BestFriend类型为User,一切都有意义

但是,仅仅因为您有User并不意味着他有一个BestFriend,并且该属性将保留null,直到某个内容分配User为止