【定义】:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用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("韩佳人"); } } }
官方网站:点击访问CDN客服QQ:123008公司名:贵州青辞赋文化传媒有限公司域名和IP被墙封了怎么办?用cloudsecre.com网站被攻击了怎么办?用cloudsecre.com问:黑客为什么要找网站来攻击?答:黑客需要找肉鸡。问:什么是肉鸡?答:被控的服务器和电脑主机就是肉鸡。问:肉鸡有什么作用?答:肉鸡的作用非常多,可以用来干违法的事情,通常的行为有:VPN拨号,流量P2P,攻击傀儡,...
DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...
国外商家提供Windows系统的并不常见,CheapWindowsVPS 此次提供的 2 款 VPS 促销套餐,提供 5 折永久优惠码,优惠后月付 4.5 美元起,价格还是挺诱人的,VPS 不限流量,接入 1Gbps 带宽,8 个机房皆可选,其中洛杉矶机房还提供亚洲优化网络供选择,操作系统有 Windows 10 专业版、2012 R2、2016、Linux等。Cheap Windows VPS是...