电商网站建设价位,我要下载百度,有域名怎么做公司网站,网站界面尺寸新建一个控制台应用程序,这个程序的作用是为一个字符串改变样子,所以起个名字叫Costumeball吧.嘉宾(字符串)通过一个个化妆间(函数)变得漂漂亮亮或奇奇怪怪后一起唱歌跳舞.好享受.声明一个委托,委托一般出现在类之外,本例随便delegate void Prink(string str);创建与委托管理的…新建一个控制台应用程序,这个程序的作用是为一个字符串改变样子,所以起个名字叫Costumeball吧.嘉宾(字符串)通过一个个化妆间(函数)变得漂漂亮亮或奇奇怪怪后一起唱歌跳舞.好享受. 声明一个委托,委托一般出现在类之外,本例随便 delegate void Prink(string str); 创建与委托管理的方法,他们的签名必须一致 static void Upper(string str) { Console.WriteLine(str.ToUpper()); } static void Lower(string str) { Console.WriteLine(str.ToLower()); } static void Mark(string str) { Console.WriteLine(\str\); } 声明委托类型变量delegate void Prink(string str);, Main方法代码如下: static void Main(string[] args) { string strFaTSo; //进行委托绑定 prink new Prink(Upper); //回调方法 prink(str); Console.ReadKey(); } 上述示例,在类内部声明了一个Prink委托类型.他具有和关联方法一样的签名(参数,返回值),否则会编译错误.将方法Upper传给了Prink构造函数,也就是将方法Upper指派给了Prink委托,并将其引用赋值给了prink变量,prink变量保存了Upper方法的指针,实现对Upper的回调. 再一个,在Main函数中添加下面代码: prink new Prink(Mark); prink(str); F5运行能看到prink(Mark)也得到了执行.先不管他怎么回事现在一起回忆下接口.写一个最简单接口的例子 interface IInterface { void SayHi(); } class Student:IInterface { public void SayHi() { Console.WriteLine(我是学生); } } class Teacher:IInterface { public void SayHi() { Console.WriteLine(我是老师); } } 在Main函数写上执行代码: IInterface p1; p1 new Student(); p1.SayHi(); p1 new Teacher(); p1.SayHi(); 分别输出,我是学生,我是老师. prink new Prink(Upper); prink(str); prink new Prink(Mark); prink(str); p1 new Student(); p1.SayHi(); p1 new Teacher(); p1.SayHi(); 很像,有木有,有木有. 委托将方法当作参数进行传递并根据传入的方法来动态的改变方法调用。只要为委托提供相同签名的方法就可以与委托绑定. 而接口约束了实现接口的类所存在的方法,根据实例化类型找到该方法,接口保障了子类必须实现接口方法. 都可以实现统一方法的调用.委托是参数类型不同,接口类是实例化对象不同.简单的说委托就是 一个方法容器你能往里面放很多方法然后统一调用,一个委托代表一个真实的方法。 多播委托,你让我干嘛,好我马上去做,你让我干嘛,好我马上去做....... 用和-操作符分别进行绑定和解除绑定的操作, public static void Main() { string str FaTSo; prink new Prink(Upper); prink new Prink(Mark); prink new Prink(Lower); prink - new Prink(Upper); prink(str); } 执行后依次输出 FaTSo fatso,事实上和-操作分别调用了Deleagate.Combine和Deleagate.Remove方法,多播委托返回值一般都是void,委托类型非void时,多播委托将返回最后一个调用方法的执行结果. 委托的补充,回调方法真正的调用者是Invoke.可以在代码中显示调用 prink.Invoke(str); 转载于:https://www.cnblogs.com/jamesliu/archive/2011/08/18/2144278.html