如何声明&在同一个语句中初始化一个属性?

时间:2013-12-01 00:51:35

标签: c#

这说明了我想要实现的目标:

public class GridModel : PropertyChangedBase
{
    public List<string> LeftValue { get; set; }
    public List<string> LeftValue = new List<string> { "Alpha", "Beta", "Gamma" };
    [...]
}

但是我得到了一个明显的“标识符重复”错误。

是否有语法?也许有一个常数或固定的List?

3 个答案:

答案 0 :(得分:3)

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

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

public class GridModel : PropertyChangedBase
{
    private List<string> _leftValue = new List<string> { "Alpha", "Beta", "Gamma" };
    public List<string> LeftValue
    {
        get { return _leftValue; }
        set { _leftvValue = value; }
    }    
}

答案 1 :(得分:3)

您可以使用支持字段对其进行初始化:

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

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

    [...]
}

答案 2 :(得分:2)

Using Properties (C# Programming Guide)有一些例子,例如

private int month = 7;  // Backing store 

public int Month
{
    get
    {
        return month;
    }
}