C#委托和事件

什么是委托? 
    委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引用函数,将其作为它构造函数的参数

先看示例:

例中先申明一个委托,
例如:
public delegate void  SomeDelegate(string str, bool b);

在这里,提及的签名,就是说SomeDelegate 这个委托 string bool 类型的形参。
例中:对委托实例化时,要提供一个引用函数,将其作为它构造函数的参数。

注意:被引用的这个函数必须和委托有相同的签名。即:
class CallClass {
        
public static void SomeFunction(string str, bool b)
        {
            Console.WriteLine(
"this is {0} is {1}",str,b);

        } 
    }

SomeFunction这个函数传给SomeDelegate的构造函数,因为他们有相似的签名(他们都有相同的形参类型和个数,并且相同数据类型);
SomeDelegate sd =new SomeDelegate(CallClass.SomeFunction);
  sd 引用了 SomeFunction,也就是说,SomeFunction已被sd所登记注册,如果你调用 sd,SomeFunction 这个函数也会被调用.最后示例通过Display方法用控制台打印出来:
  static void Display(SomeDelegate call, bool value)
        {
            call(
"OK", value);
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值