【定义】:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
//////////////////////////////////////////////////////////////////////
回调函数(CallBack)是WINDOWS编程中的一个重要部分,.NET以委托的形式实现了函数指针的概念,而且它是类型安全的。
我们习惯把数据作为参数传递给方法,而有时某个方法执行的操作并不是针对数据进行的,而是要对另一个方法进行操作,这就比较复杂了,在编译时我们并不知道第二个方法是什么,这个信息只能在运行时得到,所以需要把第二个方法作为参数传递给第一个方法。
在这种情况下我们就要使用委托来解决问题了。
委托的声明:public delegate void MyDelegate(string str);
其中void是返回类型,str是参数。
注:委托并不是方法,它是一种特殊的类型
以下是一个委托的示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace InvokeDelegate { public class InvokeDelegate { public static void ConsoleOne(string str) { Console.WriteLine("我喜欢的明星: {0}", str);
}
public static void ConsoleTwo(string str) { Console.WriteLine("我喜欢的明星: {0}", str);
}
public void ConsoleThree(string str) { Console.WriteLine("我喜欢的明星: {0}", str);
}
public class InvokeDelegate1 { public static void P1(string str) { Console.WriteLine("我喜欢的明星: {0}", str); } }
public class InvokeDelegate2 { public void P1(string str) { Console.WriteLine("我喜欢的明星: {0}", str); } }
} }
using System; using System.Collections.Generic; using System.Text;
namespace DelegateStudy { public delegate void MyDelegate(string str); class Program { static void Main(string[] args) { MyDelegate m1 = new MyDelegate(InvokeDelegate.InvokeDelegate.ConsoleOne); m1("权相宇");
MyDelegate m2 = new MyDelegate(InvokeDelegate.InvokeDelegate.ConsoleTwo); m2("宋慧乔");
MyDelegate m3 = new MyDelegate(new InvokeDelegate.InvokeDelegate().ConsoleThree); m3("金喜善");
MyDelegate m4 = new MyDelegate(m3); m4("金在元");
//组合两个委托
MyDelegate m5 = m1 + m2; m5 += m3; m5("李连杰");///m1,m2,m3
//从组合中删除委托m3 MyDelegate m6 = m5 - m3; m6("成龙"); m6 -= m3; m6("成龙");
MyDelegate m7 = new MyDelegate(InvokeDelegate.InvokeDelegate.InvokeDelegate1.P1); m7("Rain");
MyDelegate m8 = new MyDelegate(new InvokeDelegate.InvokeDelegate.InvokeDelegate2().P1); m8("韩佳人"); } } }
在之前几个月中也有陆续提到两次HostYun主机商,这个商家前身是我们可能有些网友熟悉的主机分享团队的,后来改名称的。目前这个品牌主营低价便宜VPS主机,这次有可以看到推出廉价版本的美国CN2 GIA VPS主机,月费地址15元,适合有需要入门级且需要便宜的用户。第一、廉价版美国CN2 GIA VPS主机方案我们可看到这个类型的VPS目前三网都走CN2 GIA网络,而且是原生IP。根据信息可能后续...
Hostkey.com成立于2007年的荷兰公司,主要运营服务器出租与托管,其次是VPS、域名、域名证书,各种软件授权等。hostkey当前运作荷兰阿姆斯特丹、俄罗斯莫斯科、美国纽约等数据中心。支持Paypal,信用卡,Webmoney,以及支付宝等付款方式。禁止VPN,代理,Tor,网络诈骗,儿童色情,Spam,网络扫描,俄罗斯色情,俄罗斯电影,俄罗斯MP3,俄罗斯Trackers,以及俄罗斯法...
最近我们是不是在讨论较多的是关于K12教育的问题,培训机构由于资本的介入确实让家长更为焦虑,对于这样的整改我们还是很支持的。实际上,在云服务器市场中,我们也看到内卷和资本的力量,各大云服务商竞争也是相当激烈,更不用说个人和小公司服务商日子确实不好过。今天有看到UCloud发布的夏季促销活动,直接提前和双十一保价挂钩。这就是说,人家直接在暑假的时候就上线双十一的活动。早年的双十一活动会提前一周到十天...