关于C#中的委托

目录

委托(Delegate )

1.什么是委托。

2.委托类型的声明语法格式如下。

3.一个与委托类型相匹配的方法必须满足以下两个条件。

4.委托的类结构如图。

5.委托中的方法。

6.创建委托对象。

7、给委托赋值。


委托(Delegate )

       为了实现方法的参数化,提出了委托的概念。委托是一种引用方法的类型,即委托是方法的引用,一且为委托分配了方法,委托将与该方法具有完全相同的行为;另外,.NET中为了简化委托方法的定义,提出了匿名方法的概念。

1.什么是委托。

       1、委托和类一样,是一种用户自定义类型。委托是持有一个活多个方法的对象。可以把委托看作一组有序的方法列表,调用委托时,其包含的每一个方法都会被执行。

        2、C#中的委托(Delegate )是种引用类型,该引用类型与其他引用类型有所不同。在委托对象的引用中存放的不是对数据的引用,而是存放对方法的引用,即在委托的内部包含一个指向某个方法的指针。通过使用委托把方法的引用封装在委托对象中,然后将委托对象传递给调用引用方法的代码。

       3、理解图:

2.委托类型的声明语法格式如下。

修饰符 delegate 返回类型 委托名称(参数列表)

       1、修饰符是可选项,可以保留,可以删掉;

       2、返回类型、关键字delegate和委托名称是必需项;

       3、参数列表用来指定委托所匹配的方法的参数列表,所以是可选项。

3.一个与委托类型相匹配的方法必须满足以下两个条件。

    ▲  这二者具有相同的签名,即具有相同的参数数目,并且类型相同,顺序相同,参数的修饰符也相同。

    ▲  这二者具有相同的返回值类型。委托是方法的类型安全的引用,之所以说委托是安全的,是因为委托和其他所有的C#成员一样,是一种数据类型,并且任何委托对象都是System.Delegate的某个派生类的一个对象。

4.委托的类结构如图。

       从图中可以看出,任何自定义委托类型都继承自Syste. Degae类型,并下且该类型封装了许多委托的特性和方法。

5.委托中的方法。

1、委托中的方法具有相同的签名和返回类型。

2、委托保存的方法可以来自任何类或结构,只要方法的签名和返回类型和委托一样。

3、存放在委托中的这一-组有序方法列表称为调用列表。

4、调用列表中的方法可以是实例方法也可以是静态方法。

5、在调用委托时,会执行调用列表中的所有方法。

6.创建委托对象。

1、创建委托变量

      MyDel der;//声明委托变量

2、创建委托对象

      der = new MyDel(实例方法/静态方法)

7、给委托赋值。

      由于委托是引用类型,我们可以用赋值来改变委托变量中的引用。然后旧的变量值会被回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值