我不知道我的问题标题是否属实。无论如何:
为什么在下面的示例中,我们可以使用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; }
}
答案 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
为止