将C#6.0默认属性值转换为C#5.0

时间:2015-12-27 18:18:24

标签: c# .net properties c#-6.0

public List<string> MembershipIds
{
    get;
    set;
} = new List<string>();

我收到了无效令牌

  在类,结构或接口成员声明中

“=”。

这是C#6功能。如何将其转换为C#5?

2 个答案:

答案 0 :(得分:13)

在保留自动财产的同时,没有简单的方法。

如果您不需要自动属性,请将代码转换为使用私有变量和非自动属性:

app.autodiscover_tasks(['foo', bar'])

如果确实需要auto-property,则需要在构造函数中进行赋值:

private List<string> membershipIds = new List<string>();
public List<string> MembershipIds {
    get { return membershipIds; }
    set { membershipIds = value; }
}

答案 1 :(得分:4)

此功能称为属性的默认值,它的作用是将赋值部分插入{{1>}的构造函数 }。

将代码更改为以下代码在该属性的支持字段上执行相同操作,而无需更改所有构造函数,并且C#5.0支持它:

class