C#事件处理和委托event delegate实例简述
本文实例讲述了C#事件处理和委托event delegate,分享给大家供大家参考。具体方法如下:
以下仅仅是用最简单的方式表示事件,实际应用可能是不同窗体之间相互通知某些操作,达到触发。
首先声明一个degate的 EventHandler 参数可以没有 一个或多个 但是触发和使用一定要匹配。
创建一个该EvenHandler的实例a
在程序建立或你需要的时候产生一个事件触发申明:
a += new EventHandler(d); public delegate void EventHandler(string s);
实际触发事件a("") 就可以调用实际操作。
完整实例如下:
public event EventHandler a; public Form1() { InitializeComponent(); // 声明事件触发 a += new EventHandler(d); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("即将引发事件!"); //触发 a("ss"); MessageBox.Show("11"); } //实现 public void d(string s) { // System.Threading.Thread.Sleep(10000); MessageBox.Show("d."+s); }
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
详解C#中的委托
委托这个东西不是很好理解,可是工作中又经常用到,你随处可以看到它的身影,真让人有一种又爱又恨的感觉,我相信许多人被它所困扰过. 一提到委托,如果你学过C语言,你一定会马上联想到函数指针. 什么是委托?委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针.委托可以把函数做为参数传递,其实际意义便是让别人代理你的事情.委托可以看做是函数的指针,整数可以用整数变量指向它,对象可以用对象变量指向它, 函数也可以用委托变量指向它.我们可以选择将委托类型看做只定义了一个方法的接口,而委托的实
-
C#中Predicate<T>与Func<T, bool>泛型委托的用法实例
本文以实例形式分析了C#中Predicate<T>与Func<T, bool>泛型委托的用法,分享给大家供大家参考之用.具体如下: 先来看看下面的例子: static void Main(string[] args) { List<string> l = new List<string>(); l.Add("a"); l.Add("b"); l.Add("s"); l.Add("t&quo
-
C#通过委托调用Button单击事件的方法
这里介绍通过委托取消Button事件switch-case的方法.需要注意的是,事先要按顺序在各个Button的Tag属性中设置0.1.2.3--等序号,其作用请详看代码. /*定义委托*/ public delegate 类型或viod MethodDelegate(参数1, 参数2); private void buttonC_Click(object sender, EventArgs e) { Button button = (Button)sender; /*向委托添加方法*/ Met
-
C#中委托的+=和-=深入研究
写在前面 为什么会突然想说说委托?原因吗,起于一个同事的想法,昨天下班的路上一直在想这个问题,如果给委托注册多个方法,会不会都执行呢?为了一探究性,就弄了个demo研究下. += 大家都知道委托都继承自System.MulticastDelegate,而System.MulticastDelegate又继承自System.Delegate,可以通过+=为委托注册多个方法.那么他们是否都执行了呢?执行的结果又是怎样的呢?有返回值和没返回值的是否结果是否一样?那就试着说说+=都干了哪些事? 测试代码
-
C#基于委托实现多线程之间操作的方法
本文实例讲述了C#基于委托实现多线程之间操作的方法.分享给大家供大家参考,具体如下: 有的时候我们要起多个线程,更多的时候可能会有某个线程会去操作其他线程里的属性. 但是线程是并发的,一般的调用是无法实现我们的要求的. 于是,我们在这里就可以用委托,代码如下 private delegate void DelegateInfo(); private delegate void DelegateIsEnd(); //这个是线程调用其他线程的方法 private void Dowork() { //
-
浅谈C# 中的委托和事件
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在.本文中,我将通过两个范例由浅入深地讲述什么是委托.为什么要使用委托.事件的由来..Net Framework中的委托和事件.委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论. 将方法作为方法的参数 我们先不管这个标题
-
详解C#中委托,事件与回调函数讲解
.Net编程中最经常用的元素,事件必然是其中之一.无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等. "protected void Page_Load(object sender, EventArgs e)"这段代码相信没有人不熟悉的.细心一点一定会发现,非常多的事件方法都是带了"object sender, EventArgs e"这两个参数.这是不是和委托非常相似呢? 一.委托(有些书中也称为委派)
-
C#中委托和事件的区别实例解析
本文实例分析了C#中委托和事件的区别,分享给大家供大家参考之用.具体如下: 大致来说,委托是一个类,该类内部维护着一个字段,指向一个方法.事件可以被看作一个委托类型的变量,通过事件注册.取消多个委托或方法.本篇分别通过委托和事件执行多个方法,从中体会两者的区别. 一.通过委托执行方法 class Program { static void Main(string[] args) { Example example = new Example(); example.Go(); Console.Re
-
C#中常见的系统内置委托用法详解
一般来说,C#在公共语言运行时(CLR)环境中系统为我们内置了一些常用的委托,包括Action类的委托.Func类的委托.Predicate<T>委托.Comparison<T>委托等等.以上这些委托的命名空间都是System,所属程序集都是 mscorlib.dll,今天本文就来讲一讲这些委托的使用方法. 就像我们自己已定义好的一样,要实现某些功能,我们可以直接利用系统内置委托,实例化它们,而不必显式定义一个新委托并将命名方法分配给该委托.如: public static voi
-
C#中自定义事件和委托实例
在windows 编程中用到最多的就是控件的事件了,微软给我们很好的方式,把注意力放到事件执行方法的设计和编码上,但是但我们真正弄懂了事件的真正出发执行原理的话,对我们的编程的提高真是非常榜的,例如在windows编程中 如果我单击了一个button按钮触发了button 的click事件 Button1_Click(){} ,但是有时候我们编程的时候,不但想要触发button 的单击事件,我还想要把其他的时间也要调用下来顺序执行,要实现这种方式,除了在方法最后对其他方法的调用,还可以利用将其
随机推荐
- CentOS6.3添加nginx系统服务的实例详解
- docker 搭建hadoop以及hbase集群详解
- Linux下Centos7安装Mysql5.7.19的详细教程
- Python缩进和冒号详解
- 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
- 基于Python的XSS测试工具XSStrike使用方法
- Python字符串转换成浮点数函数分享
- JSP Filter的应用方法
- SQLServer触发器创建、删除、修改、查看示例代码
- jQuery过滤HTML标签并高亮显示关键字的方法
- jquery的live使用注意事项
- jquery无法设置checkbox选中即没有变成选中状态
- asp.net中gridview的查询、分页、编辑更新、删除的实例代码
- 王通又出话了 高调赔钱,沉默赚钱!
- C#使用DeflateStream解压缩数据文件的方法
- Android编程实现禁止系统锁屏与解锁亮屏的方法
- C++软件添加dump调试打印日志(推荐)
- 强烈推荐-ajax开发者必看的文章第1/3页
- PHP递归实现汉诺塔问题的方法示例
- pyqt5 实现 下拉菜单 + 打开文件的示例代码