在声明期间初始化并创建速记getter/setter

rov*_*red 7 c# getter setter

如何在声明期间初始化成员变量并创建getter/setter简写?是否可以或者必须使用构造函数来赋值?

例如,我想做类似的事情

public class Money
{
   public int dollars = 200 {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

要么

public int dollars = 200;

dollars 
{
    get;
    set;
}
Run Code Online (Sandbox Code Playgroud)

Gob*_*obe 24

在C#6及更高版本中,您可以与字段类似地初始化自动实现的属性:

public string FirstName { get; set; } = "Jane";
Run Code Online (Sandbox Code Playgroud)

资料来源:MSDN


Use*_*678 5

不幸的是,目前无法实现这一目标.

如果使用自动属性,则必须在声明属性支持字段时指定默认值,或者从构造函数指定默认值.


Ily*_*kin 5

public class Money
{
    private int dollars = 200;
    public int Dollars
    {
        get { return dollars; }
        set { dollars = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

public class Money
{
    public int Dollars { get; set; }

    public Money() 
    {
        Dollars = 200;
    }
}
Run Code Online (Sandbox Code Playgroud)