C#中的委托(与Ruby中的类似,方法看作一个类型)

发布时间:2020-04-06 23:00:33 作者:sunzongbao2007
来源:网络 阅读:399
using System;
class B
{
public delegate  dynamic AMethod();//定义委托 delegate关键字 dynamic就是那个
//会各种变的类型,基本万能的适合,此时AMethod可以看作一个“方法类”的名字 可以利用
//这个名字 创建委托表。注意 ()内可以写参数,要求与被委托的方法相同,返回类型也是
//因此,委托列表中的方法除了名字不同外,其余基本相同。
//多用于GUI事件编程
//其实 delegate是个类 System.Multicast.Delegate是他的基类
 
 
public static void Main(){
AMethod[] am={//创建委托表,数组型
A.make,
A.did,
A.pick,
};
 
for(int i=0;i<3;i++){//这里foreach也行得通
Console.WriteLine("{0} has been done",DoDelegate(am[i]));
}
}
public static  dynamic DoDelegate(AMethod method){//委托列表中的方法将委托给
//DoDelegate,这个方法必须public static(其实是必须能随时访问到)
 
return method();//这里 method是被委托方法类的实例,易懂
}
}
 
class A
{
public static  dynamic make(){
return "A make";
}
public static string did(){
return "A did";
}
public static string pick(){
return "A pick";
}
}
===========================================
 
---------- 运行C#程序 ----------
A make has been done
A did has been done
A pick has been done
 
输出完成 (耗时 0 秒) - 正常终止
推荐阅读:
  1. Ruby中的类变量与类方法
  2. C#中的委托总结

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

职场 休闲

上一篇:SpringBoot集成FastDFS+Nginx整合基于Token的防盗链

下一篇:python爬取准备二 正则表达式

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》