我有以下叫做Parent的类。它包含ParentDetail类列表:
public class Parent
{
public Parent()
{
this._parentDetails = new List<ParentDetail>();
}
public IList<ParentDetail> ParentDetails
{
get { return _parentDetails; }
}
private List<ParentDetail> _parentDetails = new List<ParentDetail>();
}
public class ParentDetail
{
public string FileName { get; set; }
}
该课似乎有效,但我不明白为什么“= new List();”出现两次。有人可以用几行解释发生了什么吗?
答案 0 :(得分:1)
我需要两个新的List()吗 构造
不,其中一个就足够了 - 创建一个永远不会被使用的两个实例是多余的。
答案 1 :(得分:1)
这是冗余,不需要。 可以删除其中任何一个。
答案 2 :(得分:0)
它没有,也不应该。在这种情况下,_parentDetails
初始化两次。
在这种情况下,两项任务都是等效的。对于它的价值,我更喜欢在默认构造函数中初始化,而不是字段/成员声明。
答案 3 :(得分:0)
这个怎么样
private List<ParentDetail> _parentDetails;
public Parent()
{
this._parentDetails = new List<ParentDetail>();
}
出色的解释Here
答案 4 :(得分:0)
我不认为需要new List<ParentDetail>();
的内联创建,因为它已经在你的构造函数中完成了。否则你可以删除整个构造函数......
编译时的内联代码创建一个默认构造函数,并在构造函数中移动该段代码。