C#中委托的理解(方便Java的童孩们理解)

C#中委托的理解(方便Java的童孩们理解)

 

定义:委托即Java中的抽象方法,是一个没有实现的方法,没有方法体。要在程序运行的时候才知道它的具体运行的是哪一部分代码(这个定义是从Java角度理解的)

 

使用:1、定义委托(委托定义的返回类型和形参要与指定的实现函数的返回类型和形参一致)。语法格式如下:

          修饰符 delegate返回类型 委托名字(形参);

如下:publicdelegatevoid AMethod();

publicdelegateint call(inta,intt);

publicdelegatefloatmethodName(inta);

2、为委托指定具体的实现函数。即指定这个函数要运行哪段代码。有两种方式为委托指定实现,“new方式”和“赋值方式”。

 “new方式”:

       委托名字 变量名字 =new委托名字(具体的函数);

//printMessage1为非静态方法,非静态方法要先实例化类

AMethod delegateMethod=newAMethod(newDemo1().printMessage1);

//printMessage1为静态方法,所以不用实例化类

AMethod delegateMethod_static=newAMethod(printMessage2);

        “赋值方式”:

            AMethoddelegateMethods =newDemo1().printMessage1;

AMethod delegateMethod_static= printMessage2;

3、执行(调用)。

                            变量名字(形参)

              delegateMethod();

delegateMethod_static();

重点:委托可以进行+=-=的运算,实际意义是为委托指定多个实现函数或取消已指定的函数。指定的多个实现函数将依次执行。使用这个特性实现事件机制

Listen lis+=new B().doSomething;

lis+=new C().doSomething;

lis+=new D().doSomething;

 

F f = new F();

Lis += f.doSomething;

Lis -= f.doSomething;

 示例代码下载,不用资源分的。

到这里只是简单说明一下概念和语法,那它是作什么用的呢,请阅读委托与机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值