c#委托事件

1, 什么是委托

       委托是什么?从生活理解就像是你是一个C# 程序员,你对C++ 并不了解,当需要进行C++ 代码分析的时候你委托给你的一位懂C++ 的同事帮你来完成;在C# 中,委托的作用是这样描述的:委托就像一个函数的指针,在程序运行时可以使用它们来调用不同的函数。简单点说,委托能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引用函数( 通常是函数的名) ,将其作为它构造函数的参数。

每一个委托都有自己的签名,比如delegate string DoSomeDelegate(string s,bool b); 就是一个委托声明,DoSomeDelegate 这个委托有stringbool 类型的形参,返回一个int 类型,这个委托可以调用有stringbool 类型的形参,返回一个string 类型的函数( 也就是被引用的函数必须和委托有相同的签名)

private string DoSomeFunc(string s,bool b){…}

可以将这个函数传给DoSomeDelegate, 因为这两个函数的签名相同( 相同的参数和返回类型)

DoSomeDelegate doSomeDelegate = new DoSomeDelegate(DoSomeFunc);

输出结果是:biyy is true


2, 什么是事件

委托和事件这两个概念是完全配合的。在某件事情发生时,一个对象可以通过事件通知另一个对象。一个对象可以声明一个事件,至于这个事件如何处理它并不关心;

事件制订了使用委托的规则。委托必须没有返回值,且有两个接受参数,第一个参数是一个对象的引用,代表产生事件的一方,第二个参数必须是以个从System.EventArgs 类中派生的类型,在EventArgs 派 生类里,可以定义任何事件具体的参数。

     首先声明一个public delegate void DoSomeDetegate(object sender,EventArgs e);

     然后申明一个public event DoSomeDetegate DoSomeEvent 类型是刚定义的委托;

再定义处理事件的方法public void User_DoSomeFunc(object sender,EventArgs e);

使用DoSomeEvent +=new DoSomeDetegate(User_DoSomeFunc);

一般来说事件和委托总是成对出现,如果要对委托事件有更深入的了解可以看看Button等类中相关的事件定义方式。


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值