C# 监控变量值改变

0bdfe7c18d7b347b287410b644e4a172.png

前言

a38e8f99d557448cf008d92595c30328.png

ab7f7909b2d6a27fbcf3747419d49705.png

    值改变事件一般会用在控件上面,如Winform TextBox的TextChanged事件,Html Input text的change事件,能够在输入值改变的时候立刻通知到需要获取的事件里面,可以做出对应的处理。但是假如我们一个变量调用的地方比较多,在某些情况下也需要监控呢?或者说想通过一个最简单的方式实现对变量的赋值保护呢?(是可以在不改变原有代码情况下的一个操作,这样其实可以针对一些屎山代码),当然这里举个例子而已,实际上也可另作他用。

具体怎么实现?其实也很简单,利用属性和事件即可完成。

37553d3a67c6c07c8dfec85a7181c783.png

e9e3ce2e5565cb7f94acb453c2451d41.gif

5456a9223a9aaf5dc8c482f1b06bbdb4.jpeg

开发环境:.NET Framework版本:4.8

开发工具:Visual Studio 2022

6ac8b79eda12a4860555725170e48311.png

实现步骤

dd840ddec80746f9230650aa5fb0941e.png

  1. 首先定义一个值改变事件,提供两个参数,分别是旧值和新值

public event Action<string, string> ValueChanged;
  1. 定义变量属性,在set操作中进行如下处理

private string _Value;
        public string Value
        {
            get
            {
                return _Value;
            }
            set
            {
                string oldValue = _Value;
                _Value = value;
                if (oldValue != _Value && ValueChanged != null)
                {
                    ValueChanged(oldValue, value);
                }
            }
        }
  1. 在合适的位置进行事件绑定

ValueChanged +=
                new Action<string, string>((oldValue, newValue) =>
                {
                    MessageBox.Show("old:" + oldValue + ",new:" + newValue);
                });
  1. 调用测试

int i = 0;
private void button1_Click(object sender, EventArgs e)
        {
            Value = i++.ToString();
        }

6309e1981799494c4522742fba26fffd.png

实现效果

378171a7f367c69ba21b8d385f5db749.png

0b1f6676342821aa287465c2c96cd26a.gif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值