我需要两个新的List <parentdetail>()构造函数吗?</parentdetail>

时间:2011-06-22 07:46:58

标签: c# list

我有以下叫做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();”出现两次。有人可以用几行解释发生了什么吗?

5 个答案:

答案 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>();的内联创建,因为它已经在你的构造函数中完成了。否则你可以删除整个构造函数......

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