通过c#属性发布和订阅事件

本文关键字:事件 属性 通过 | 更新日期: 2023-09-27 18:08:34

我们可以通过在方法或属性上指定c#属性来发布和订阅事件吗?

如果Property被更改…然后我们需要触发一个事件…
(FirePropertyChangedEvent)SomeProperty

通过c#属性发布和订阅事件

我已经回答过一个类似的问题,所以我复制我的答案:

让我们假设你正在使用一个本地的"speed"变量,你想在每次主"speed"变量被更新时更新它…

public class SpeedHolder
{
    private float _speed;
    public event Action<float> OnSpeedChange;
    public float Speed
    {
        get { return _speed; }
        set { SetSpeed(value); }
    }
    public SetSpeed(float value)
    {
        _speed = value;
        if(OnSpeedChange != null)
            OnSpeedChange(_speed);
    }
}

现在在每个使用速度浮动变量的脚本的每个"构造器"方法中,您需要添加这一行:SpeedHolder.OnSpeedChange += ChangeSpeed;,并有一个像这样的方法:

public void ChangeSpeed(value)
{
    speed = value;
}