对于委托的理解(轻喷)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

这几天学到委托了,感觉 蛮头痛的, 脑袋有点不够用,几番周折,终于,对于委托似乎有了点理解 ,现总结如下 :

什么是委托?

委托就是定义一个 对于方法的引用,类似于c++中的函数指针。

委托的格式?

修饰符1 delegate 修饰符2 委托类型名(变量n);

修饰符1 为定义的委托的范围修饰符,常用public;

修饰符2为 返回值类型修饰符,如 : void ,string ,char等;

名字 为我们定义一个委托类型时所为它取得名字;

对于 变量n 我们常常会有疑惑,委托是一个 方法吗? 为什么会有返回值 以及变量呢 ?

其实,委托并不是一个方法 ,而是一个 类型,它之所以有返回值以及变量是为了 保持 与其委托的方法 保持一致;

注意 : 委托是一个 类型 所以我们常常把它定义在一个 类的外面;

还有 ,委托类型定义之后,我们还不能直接拿过来使用,还需要对它定义该类型的 委托变量;

格式 :

修饰符1 delegate 修饰符2 委托类型名(变量n);

委托类型名 委托变量;

使用时,还需要注意,我们在使用时要使用定义的委托变量,而不是定义的委托类型名,这类似于我们定义枚举型一样; 因为定义的委托变量是一个变量,所以 在使用之前我们还要对其进行赋值。

格式: 修饰符1 delegate 修饰符2 委托类型名(变量n);

委托类型名 委托变量;

委托变量=委托方法名;

注意: 这里的委托方法名就是你要委托的方法的名字,而且注意,不要加上了方法的参数以及括号,同时 ,这里委托的方法 还要与 该委托类型定义时所 定义的 返回值类型、参数列表类型以及参数个数 保持一致;

ok,现在 定义好了 委托类型 ,该使用了 。 还记得委托是用来干嘛的吗 ?

没错 ,委托是用来将方法作为参数 传递进入其它方法的,

所以:

我们要先定义一个 方法;

范围修饰符 【static】 返回值类型修饰符 调用方法名( 变量n, 委托类型 委托变量)

{

委托变量(变量n);

.

.

.

委托变量(变量 n);

}

上边的变量n就是你所委托的方法的参数;

开始使用了 :

1) 委托类型 委托变量;

2) 委托变量=委托方法名;

3) 调用方法名(变量n,委托变量);

完整示例如下:

using System;

using System.Collections.Generic;

using System.Text;

namespace 委托示例

{

public delegate void del(string str); //定义的委托类型

calss 示例

{

static void send(string i) //要委托的方法

{

console.WriteLine(i);

}

static void sendup(string list,del handler) //调用方法

{

handler(list);

}

public static void mian(string [] args) //主方法

{

del 委托变量=send; // 该句相当于: del 委托变量; 委托变量=send;

sendup("这是一个 委托的示例!!!",委托变量);

console.ReadKey();

}

}

}

欢迎指正错误,共同学习,共同进步!!!!

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航