如果我需要自定义getter/setter,我可以省略字段创建吗?

jav*_*red 3 c#

我可以写出如此美丽的直截了当的代码:

 public int Delta { get; private set; }
Run Code Online (Sandbox Code Playgroud)

现在我想只添加一个电话 OnPropertyChanged("Delta");

这是我知道如何做到这一点的唯一方法:

public int Delta { get { return _delta; } private set
{
    _delta = value; OnPropertyChanged("Delta"); }
}
private int _delta;
Run Code Online (Sandbox Code Playgroud)

这是太多的额外代码!为什么我要在这种情况下引入字段?你能让这段代码缩短吗?我想有类似的东西,但它不起作用:

 public int Delta { get; private set { OnPropertyChanged("Delta"); } }
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 6

不,你不能用自动属性这样做.自动属性是指字段上属性的简写语法.他们几乎没有其他能力.任何自定义代码执行都需要完整的属性.