委托初步了解(代码段展示)

匿名 (未验证) 提交于 2019-12-02 22:06:11

一.非含参委托

using System; namespace 委托 {     //2 定义委托类型  委托和目标方法基本一致     public delegate void DelegateEat();      class Program     {//1 应该有目标方法         public static void ZSEat()         {             Console.WriteLine("张三吃饭饭--->");         }         public static void LSEat( )         {             Console.WriteLine("李四吃饭饭--->");         }                public static void Main(string[] args)         {  //3 申明委托变量             DelegateEat delegateEat;             //4 赋值             delegateEat = ZSEat;             delegateEat += LSEat;                      delegateEat += delegateEat;             delegateEat -= LSEat;              //5 执行委托             delegateEat();         }     }    }

结果:张三吃饭饭--->

         李四吃饭饭--->
         张三吃饭饭--->

二.含参数委托类

例一:目标函数中放一个参数

using System; namespace ConsoleApplication1 {             public delegate void DelegateEat();//2         class Program         {             /// 第一个参数放置符合类型的方法!!!             public static void ExcDelegateEat(DelegateEat de)//1             {                               Console.WriteLine("先执行");                 de();             }             public static void LSEat()             {                                 Console.WriteLine("赵六吃呵呵哒");                           }             public static void Main(string[] args)             {                 ExcDelegateEat(LSEat);             }             } }

结果:先执行

赵六吃呵呵哒

例二:目标函数中放两个参数

using System;namespace ConsoleApplication1 {             public delegate void DelegateEat();//2         class Program         {             /// 第一个参数放置符合类型的方法!!!             public static void ExcDelegateEat(DelegateEat de, string userName)//1             {                               Console.WriteLine("{0}在使用吃的功能", userName);                 de();             }             public static void LSEat()             {                                 Console.WriteLine("赵六吃呵呵哒");                           }             public static void Main(string[] args)             {                 ExcDelegateEat(LSEat, "李四");             }             } }

结果:李四在使用吃的功能

赵六吃呵呵哒

例三:目标函数和委托类型均有两个参数

 1 using System;  2 namespace ConsoleApplication1  3 {      4         public delegate void DelegateEat(string x,string y);//2  5         class Program  6         {  7             public static void ExcDelegateEat(DelegateEat de, string userName)//1  8             {  9                 string tr = "王五"; 10                 string er = "洪七"; 11                 Console.WriteLine("{0}在使用吃的功能", userName); 12                 de(tr,er); 13             } 14             public static void LSEat(string m,string n) 15             { 16                 Console.WriteLine("{0}吃呵呵哒",m); 17                 Console.WriteLine("赵六吃呵呵哒"); 18                 Console.WriteLine("{0}吃呵呵哒",n); 19             } 20             public static void Main(string[] args) 21             { 22                 ExcDelegateEat(LSEat, "李四"); 23                 Console.ReadKey(); 24             }         25     } 26 }

结果:李四在使用吃的功能

王五吃呵呵哒

赵六吃呵呵哒

洪七吃呵呵哒

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!