什么是“ public List <abc> abc {get; set;} = new List <abc>();”这个意思?

时间:2018-07-18 12:30:23

标签: c#

public List<ABC> abc {get; set; } = new List<ABC>();

我在我的代码审查之一中看到了此代码,有人可以帮助我理解为什么开发人员可能会这样编写它。

1 个答案:

答案 0 :(得分:3)

public List<ABC> abc {get; set; } = new List<ABC>();

这将声明类型为abc的名为List<ABC>的属性。
该属性有一个getter和setter(所以没有只读的东西)。

当类实例化到新列表时,= new List<ABC>();部分初始化该属性。构造实例后,该操作仅执行一次。

此语法是C#6中的新增功能。

在此之前,您需要在构造函数中初始化属性或使用显式的后备字段:

private List<ABC> _abc = new List<ABC>();
public List<ABC> abc {
  get {return _abc; }
  set { _abc = value; }
}

请注意,在此处设置公共二传手通常不是一个好主意。在大多数情况下,您只希望类的使用者操作列表的 content ,而不希望从外部交换整个列表(引用)。