检测变量变化c#

Detect variable change c#

我已经搜索了一段时间,但没有找到适合我的问题的任何内容。

我有一个整数:

private static int kills = 0;

我想要一个函数 运行 当该变量改变时。就像,现在是0。如果它变为 2,我想要一个像 OnVarChange 这样的函数被调用,而那个函数 OnVarChange 将 return被改变了。在这种情况下 2-0=2,所以它将 return 2.

这可能吗?我该怎么做?

希望你明白我刚才说的:p

您需要提供变更机制:

添加:

public static int Kills{
    get{  return kills; }
    set{

        kills = value;
        //change code here...
       }
}

只有 set 使用此 public Kills 属性。如果可能,不要直接更改实例成员 kills。但总有例外。

制作一个属性,允许其中的逻辑。那将是添加这种功能的好地方:

private static int kills = 0;

public static int Kills
{
    get
    {
        return kills;
    }
    set
    {
        this.kills = value;
        this.OnVarChange();
    }
}

更好的选择是实现 INotifyPropertyChanged,这是一个接口,UI 和框架的其他部分可以选择并采取行动。

public class X : INotifyPropertyChanged
{
    private int kills = 0;

    public int Kills
    {
        get
        {
            return kills;
        }
        set
        {
            this.kills = value;
            this.OnPropertyChanged();
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string propertyName = "")
    {
        PropertyChangedEventHandler pc = this.PropertyChanged;

        if (pc != null)
        {
            pc(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
static int Kills
{
 get{
return kills;
}
 set{
    OnVarChange(kills,value);
    kills = value;
}
}

kills 定义一个 属性。使用此 属性 更改 kills 的值。您可以使用此 属性 的设置访问器调用方法来检测变量 kills.

的变化