通过c#属性发布和订阅事件
本文关键字:事件 属性 通过 | 更新日期: 2023-09-27 18:08:34
我们可以通过在方法或属性上指定c#属性来发布和订阅事件吗?
如果Property被更改…然后我们需要触发一个事件…
(FirePropertyChangedEvent)SomeProperty
我已经回答过一个类似的问题,所以我复制我的答案:
让我们假设你正在使用一个本地的"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;
}