我需要两个新的列表<;ParentDetail>;()构造函数

本文关键字:lt ParentDetail 构造函数 gt 列表 两个 | 更新日期: 2023-09-27 18:00:15

我有一个名为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();"会出现两次。有人能用几行字解释一下发生了什么吗?

我需要两个新的列表<;ParentDetail>;()构造函数

我需要两个新的List()吗建设者?

不,其中一个就足够了——创建两个永远不会使用的实例是多余的。

这是不需要的冗余。其中任何一个都可以删除。

这个怎么样

private List<ParentDetail> _parentDetails;
public Parent()
{
   this._parentDetails = new List<ParentDetail>();
}

很好的解释这里

它不必,也不应该。在这种情况下,CCD_ 1被初始化两次。

在这种情况下,这两项任务是等效的。值得一提的是,我更喜欢在默认构造函数中初始化,而不是在字段/成员声明中初始化。

我认为不需要内联创建new List<ParentDetail>();,因为它已经在构造函数中完成了。。或者,您可以将构造函数作为一个整体删除。。。

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