对于委托的理解 (轻喷)
2018-06-18 05:14:52来源:未知 阅读 ()
这几天学到委托了,感觉 蛮头痛的, 脑袋有点不够用,几番周折,终于,对于委托似乎有了点理解 ,现总结如下 :
什么是委托?
委托就是定义一个 对于方法的引用,类似于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;
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();
}
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 深入理解:设计模式中的七大设计原则 2020-06-07
- 通俗理解spring源码(六)—— 默认标签(import、alias、be 2020-06-07
- 一文带你深入理解JVM,看完之后你还敢说你懂JVM吗?颠覆you 2020-06-02
- 深入理解Mybatis(第一讲)——手写ORM框架(简易版Mybatis 2020-06-01
- 无责任书评:每个Java程序员都应该深入理解Java虚拟机 2020-05-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash