C# 变量改变事件

C# 变量改变事件


public event EventHandler isChanged;
        private void RaiseisChanged()
        {
            var handler = isChanged;
            if (handler != null)
            {
                handler(this,EventArgs.Empty);
            }
        }


C#中,直接给变量赋值并不会自动触发事件。不过你可以通过一些设计模式和技巧来实现类似的效果,比如使用属性(Properties)、INotifyPropertyChanged 接口或依赖项系统等。 ### 使用属性 + INotifyPropertyChanged 这是WPF、UWP以及MVVM框架中最常见的做法之一: ```csharp using System.ComponentModel; using System.Runtime.CompilerServices; public class MyViewModel : INotifyPropertyChanged { private string myVar; public event PropertyChangedEventHandler PropertyChanged; // 定义一个公共属性,并在此处处理变化通知 public string MyProperty { get { return myVar; } set { if (myVar != value) { myVar = value; OnPropertyChanged(); } } } protected void OnPropertyChanged([CallerMemberName] string propertyName = null) { this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } ``` 在这个例子中,每当`MyProperty`被设置新值时,都会调用 `OnPropertyChanged()` 方法并发送更改通知,订阅者可以监听到这个事件的发生而做出响应。 这种机制对于构建用户界面特别有用,在数据绑定场景下能够确保UI实时反映最新的状态变更信息。 ### 其它方法 除了上述方式外,还有其他几种途径可以在数值发生变化的时候触发特定动作: 1. **自定义逻辑控制:** 将对变量的操作封装在一个函数内部完成,在其中加入必要的检查和回调; 2. **委托 / 回调:** 利用Delegate创建一种观察者的功能当目标对象发生变动时立即反馈给所有注册过的客户端; 3. **第三方库** 或者 .NET Core 新特性如 Source Generators 来简化此过程; 每种解决方案都有各自的优缺点,请根据实际应用场景选择最合适的方式!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值