很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用C#的事件机制就可以达到这个目的下面的例子是一个很好的演示,这段代码实现了对一个变量的监视,一旦变量发生改变,就触发动作

定义事件类:

  1. class Event
  2. {
  3. public delegate void tempChange(object sender, EventArgs e);
  4. public event tempChange OntempChange;
  5. string temp;
  6. public string Temp
  7. {
  8. get
  9. {
  10. return temp;
  11. }
  12. set
  13. {
  14. if (temp != value)
  15. {
  16. OntempChange(this, new EventArgs());
  17. }
  18. temp = value;
  19. }
  20. }
  21. }

复制代码

分析:
要定义一个事件,首先声明事件和委托

具体格式如下:
声明委托

  1. public delegate void 事件句柄函数(object sender,EventArgs e);

复制代码

object用来传递事件的发生者,EventArgs用来传递事件的细节

下面定义一个此委托类型类型的事件

  1. public event 事件句柄函数 事件名;

复制代码

在这里,我定义了一个名为OntempChange的事件,并在属性访问器里设定当读取值与原值不同时触发该事件

使用事件(部分代码):

  1. public partial class Form1 : Form
  2. {
  3. Event ven = new Event();
  4. public Form1()
  5. {
  6. ven.OntempChange += new Event.tempChange(ven_OntempChange);
  7. InitializeComponent();
  8. }
  9. void ven_OntempChange(object sender, EventArgs e)
  10. {
  11. MessageBox.Show(ven.Temp);
  12. }
  13. private void button1_Click(object sender, EventArgs e)
  14. {
  15. ven.Temp = textBox1.Text;
  16. }

复制代码

在C#中,使用+=运算符将事件绑定给函数,在这里我把OntempChange事件绑定给了ven_OntempChange函数,在下面我定义了这个函数,在这个函数里设定了触发事件之后执行的相关操作(注意函数的参数)实际的运行效果就是,在文本框内输入字符,按下按钮后,如果你输入的值和上一次的不同,就会弹出对话框显示这个值~

C#自定义事件 范例:监视变量变化的更多相关文章

  1. C#实现自定义事件,用于监视变量变化

    很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用C#的事件机制就可以达到这个目的下面的例子是一个很好的演示. 这段代码实现了对一个变量的监视,一旦变量发生改变,就触发动作 定义 ...

  2. C#自定义事件监视变量变化

    首先监视定义类 class Event { public delegate void tempChange(object sender, EventArgs e); public event temp ...

  3. jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化

    jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化 js监听输入框值的即时变化 网上有很多关于 onpropertychange.oni ...

  4. mui开发app之自定义事件以更新其他页内容

    我之前做过jquery mobile的开发,那还是前年的事情 在jquery mobile中,由于页面是存储在div[data-role=page]的dom中(jqmobile通过对data-role ...

  5. 微信小程序自定义事件

    案例结构 首先,我还是会以案例的形式向大家讲解(这样也能方便大家更好的理解)简单介绍一下案例项目的内容(以上一章自定义组件的案例为基础)项目名称:component自定义子组件cpt父组件:logs ...

  6. React和Vue中,是如何监听变量变化的

    React 中事件监听 本地调试React代码的方法 先将React代码下载到本地,进入项目文件夹后yarn build 利用create-react-app创建一个自己的项目 把react源码和自己 ...

  7. 如何实现swipe、tap、longTap等自定义事件

    前言 移动端原生支持touchstart.touchmove.touchend等事件,但是在平常业务中我们经常需要使用swipe.tap.doubleTap.longTap等事件去实现想要的效果,对于 ...

  8. 跟着《beginning jquery》学写slider插件并借助自定义事件改进它

    <beginning jquery>是一本很不错的学习jquery的书,作者的讲解深入浅出,很适合初学者,在最后一章里面,作者把前面所有的点结合起来完成了一个轮播图的jquery插件.实现 ...

  9. C#:委托和自定义事件

    1. 委托概述 “委托”相当于C++中的“函数指针”,委托必须与所要“指向”的函数在“参数”和“返回类型”上保持一致; // 定义Person类 public class Person { publi ...

随机推荐

  1. 每日英语:Auto Makers Accelerate Efforts to Develop Self-Driving Cars

    Big auto makers are steering their efforts to develop cars that drive themselves out of the labs and ...

  2. 如何从dll文件导出对应的lib文件?

    [时间:2016-05] [状态:Open] 引言 近期由于不再使用vs生成lib,考虑使用windows下gcc生成一个动态库,供第三方调用,发现编译之后只有dll,lib如何处理? 好吧,这就是本 ...

  3. LeetCode: Binary Tree Inorder Traversal 解题报告

    Binary Tree Inorder Traversal Given a binary tree, return the inorder traversal of its nodes' values ...

  4. python dataframe astype 字段类型转换

    使用dtype查看dataframe字段类型 print df.dtypes 使用astype实现dataframe字段类型转换 # -*- coding: UTF-8 -*- import pand ...

  5. Ubuntu常用安装源

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份 sudo vim /etc/apt/sources.list #修改 sudo ...

  6. NewStyleClass学习笔记[一]

    from : https://www.python.org/doc/newstyle/ New-style Classes Unfortunately(遗憾,不幸的), new-style class ...

  7. iOS 中JSONModel的使用

    基本使用 涉想你的JSON数据像这样: { "id": "10", "country": "Germany", &quo ...

  8. [转]python进行中文文本聚类(切词以及Kmeans聚类)

    简介 查看百度搜索中文文本聚类我失望的发现,网上竟然没有一个完整的关于Python实现的中文文本聚类(乃至搜索关键词python 中文文本聚类也是如此),网上大部分是关于文本聚类的Kmeans聚类的原 ...

  9. Linux 获取 MAC 地址并去除 : 字符

    ifconfig -a | grep eth0 | awk -F ' ' '{print $5}' | sed 's/://g'

  10. redis主从配置(docker实现)

    一.docker新建两个redis服务端,并分别设置端口为6379和6380 命令如下: docker run -p : -d --name redis-server docker.io/redis: ...