我有一个目前是自动的属性。

public string MyProperty { get; set; }

但是,现在我需要它在每次更改时执行一些操作,因此我想向 setter 添加逻辑。所以我想做这样的事情:
public string MyProperty {
    get;
    set { PerformSomeAction(); }
}

但是,这不会建立... MyProperty.get' must declare a body because it is not marked abstract, extern, or partial
我不能只让 setter/getter 返回MyProperty,因为它会导致无限循环。

有没有办法做到这一点,还是我必须声明一个私有(private)变量来引用?我宁愿不使用MyProperty来遍历该类及其外部的代码

最佳答案

您需要使用带有后备字段的属性:

private string mMyProperty;
public string MyProperty
{
    get { return mMyProperty; }
    set
    {
        mMyProperty = value;
        PerformSomeAction();
    }
}

关于c# - 没有 body 的 setter/getter ,有的塞特,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37392253/

10-13 00:25