我是否需要为autoproperties调用new?

时间:2017-05-18 08:25:12

标签: c# properties

如果我有autoproperty:

public List<IObjects> MyObjects {get; set;}

我是否需要在构造函数中调用MyObjects = new List<IObjects>();

2 个答案:

答案 0 :(得分:1)

如果您没有将其设置为其他任何内容,Autoproperties将具有其默认值。这相当于MyObjects = default(List<IObjects>)。在这种情况下,它将为null。我指的是它是如何default(T),因为在类似于int的情况下它将是default(int)(即0)所以将它视为默认值并且不是null是很重要的

值得注意的是,您不必在构造函数中执行此操作 - 它不是只读的。您可以非常高兴地将其设置为其他地方的值(例如MyClass.MyObjects = myList),或者如果您愿意,可以将其完全取消(并且这样做有意义)。

答案 1 :(得分:-1)

没有必要在构造函数中初始化auto实现的属性。它具有默认值,并且为null。