C# 我是否需要两个新列表<;家长详情>;()建设者?
我有一个叫做Parent的类。它包含ParentDetail类的列表:C# 我是否需要两个新列表<;家长详情>;()建设者?,c#,list,C#,List,我有一个叫做Parent的类。它包含ParentDetail类的列表: public class Parent { public Parent() { this._parentDetails = new List<ParentDetail>(); } public IList<ParentDetail> ParentDetails { get { return _parentDetails; }
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; }
}
公共类父类
{
公共家长()
{
这是。_parentDetails=new List();
}
公共图书馆的详细信息
{
获取{return\u parentDetails;}
}
私有列表_parentDetails=新列表();
}
公共类ParentDetail
{
公共字符串文件名{get;set;}
}
这个类似乎可以工作,但我不明白为什么“=new List();”会出现两次。有人能用几句话解释一下发生了什么吗?这不一定,也不应该。在这种情况下,
\u parentDetails
被初始化两次
在这种情况下,这两个赋值是等价的。值得一提的是,我更喜欢在默认构造函数中初始化,而不是在字段/成员声明中初始化
我需要两个新的列表吗
建设者
不,其中一个就足够了——创建两个Instance,其中一个将永远不会被使用是多余的。这是冗余,不需要。 其中任何一个都可以删除。这个怎么样
private List<ParentDetail> _parentDetails;
public Parent()
{
this._parentDetails = new List<ParentDetail>();
}
private List\u parentDetails;
公共家长()
{
这是。_parentDetails=new List();
}
很好的解释我不认为内联创建
新列表()代码>是必需的,因为它已在构造函数中完成。或者,您可以将构造函数作为一个整体删除
编译时的内联代码会创建一个默认构造函数,并将该段代码移到构造函数中。谁说需要初始化两次?不需要。这似乎是多余的,无论是在构造函数中还是在内联中,但两者都是不必要的。