C# 我是否需要两个新列表<;家长详情>;()建设者?

C# 我是否需要两个新列表<;家长详情>;()建设者?,c#,list,C#,List,我有一个叫做Parent的类。它包含ParentDetail类的列表: public class Parent { public Parent() { this._parentDetails = new List<ParentDetail>(); } public IList<ParentDetail> ParentDetails { get { return _parentDetails; }

我有一个叫做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; }
}
公共类父类
{
公共家长()
{
这是。_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();
}

很好的解释

我不认为内联创建
新列表()是必需的,因为它已在构造函数中完成。或者,您可以将构造函数作为一个整体删除


编译时的内联代码会创建一个默认构造函数,并将该段代码移到构造函数中。

谁说需要初始化两次?不需要。这似乎是多余的,无论是在构造函数中还是在内联中,但两者都是不必要的。