在声明期间初始化并创建速记获取器/设置器

本文关键字:获取 设置 创建 声明 初始化 | 更新日期: 2023-09-27 18:36:14

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

例如,我想做一些与此类似的事情

public class Money
{
   public int dollars = 200 {get; set;}
}

public int dollars = 200;
dollars 
{
    get;
    set;
}

在声明期间初始化并创建速记获取器/设置器

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

public string FirstName { get; set; } = "Jane";

来源: MSDN

public class Money
{
    private int dollars = 200;
    public int Dollars
    {
        get { return dollars; }
        set { dollars = value; }
    }
}

public class Money
{
    public int Dollars { get; set; }
    public Money() 
    {
        Dollars = 200;
    }
}
不幸的是,

目前没有办法实现这一目标。

必须在声明属性支持字段时分配默认值,或者在使用自动属性时从构造函数分配默认值。

public class Money
{
  public int Dollars {get;set;}
  public Money()
  {
    Dollars = 200;
  }
}