如果我有autoproperty:
public List<IObjects> MyObjects {get; set;}
我是否需要在构造函数中调用MyObjects = new List<IObjects>();
?
答案 0 :(得分:1)
如果您没有将其设置为其他任何内容,Autoproperties将具有其默认值。这相当于MyObjects = default(List<IObjects>)
。在这种情况下,它将为null。我指的是它是如何default(T)
,因为在类似于int的情况下它将是default(int)
(即0)所以将它视为默认值并且不是null是很重要的
值得注意的是,您不必在构造函数中执行此操作 - 它不是只读的。您可以非常高兴地将其设置为其他地方的值(例如MyClass.MyObjects = myList
),或者如果您愿意,可以将其完全取消(并且这样做有意义)。
答案 1 :(得分:-1)
没有必要在构造函数中初始化auto实现的属性。它具有默认值,并且为null。