C# 如何申报&;在同一语句中初始化属性?

C# 如何申报&;在同一语句中初始化属性?,c#,C#,这说明了我正在努力实现的目标: public class GridModel : PropertyChangedBase { public List<string> LeftValue { get; set; } public List<string> LeftValue = new List<string> { "Alpha", "Beta", "Gamma" }; [...] } 公共类GridModel:PropertyChan

这说明了我正在努力实现的目标:

public class GridModel : PropertyChangedBase
{
    public List<string> LeftValue { get; set; }
    public List<string> LeftValue = new List<string> { "Alpha", "Beta", "Gamma" };
    [...]
}
公共类GridModel:PropertyChangedBase
{
公共列表LeftValue{get;set;}
public List LeftValue=新列表{“Alpha”、“Beta”、“Gamma”};
[...]
}
但我得到了一个明显的“标识符重复”错误


这有语法吗?可能使用常量或固定列表?

在声明属性时,无法初始化属性的支持字段

您必须在构造函数中执行此操作,或者干脆不使用自动实现的属性,直接初始化支持字段

public class GridModel : PropertyChangedBase
{
    private List<string> _leftValue = new List<string> { "Alpha", "Beta", "Gamma" };
    public List<string> LeftValue
    {
        get { return _leftValue; }
        set { _leftvValue = value; }
    }    
}
公共类GridModel:PropertyChangedBase
{
私有列表_leftValue=新列表{“Alpha”、“Beta”、“Gamma”};
公共列表左值
{
获取{return\u leftValue;}
设置{u leftvValue=value;}
}    
}

您可以使用备份字段对其进行初始化:

public class GridModel : PropertyChangedBase
{
    private List<string> leftValue = new List<string> { "Alpha", "Beta", "Gamma" };

    public List<string> LeftValue 
    { 
        get
        {
            return leftValue;
        }
        set
        {
            leftValue = value;
        } 
    }

    [...]
}
公共类GridModel:PropertyChangedBase
{
私有列表leftValue=新列表{“Alpha”、“Beta”、“Gamma”};
公共列表左值
{ 
得到
{
返回leftValue;
}
设置
{
leftValue=值;
} 
}
[...]
}

中有一些示例,例如


声明为只读时,不能在setter中设置
\u leftvValue
。请删除setter或标识符。对不起,它不应该也是
newlist(new[]{“Alpha”、“Beta”、“Gamma”})
(新[]{“Alpha”、“Beta”、“Gamma”})否,这些称为集合初始值设定项。编译器将为括号内的每个项目创建一个“Add”调用:
private int month = 7;  // Backing store 

public int Month
{
    get
    {
        return month;
    }
}