源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#委托把方法当成参数(实例讲解)

  • 时间:2020-01-22 02:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#委托把方法当成参数(实例讲解)
静态方法代理:
[u]复制代码[/u] 代码如下:
public delegate void DoGreeting(string name); class Program     {         [STAThread]         static void Main(string[] args)         {             //方法名当成参数传给委托类型调用             MarkGreeting("张三", GreetingEnglish);             MarkGreeting("李四", GreetingChinese);         }         /// <summary>         /// 委托(代理的方法)         /// </summary>         /// <param name="name"></param>         /// <param name="markGreeting"></param>         private static void MarkGreeting(string name, DoGreeting markGreeting)         {             markGreeting(name);         }         /// <summary>         /// 用英文打招呼         /// </summary>         /// <param name="name"></param>         private static void GreetingEnglish(string name)         {            Console.WriteLine(name+"hello!");         }         /// <summary>         /// 用中文打招呼         /// </summary>         /// <param name="name"></param>         private static void GreetingChinese(string name)         {             Console.WriteLine(name+"你好!");         }     }
实例方法代理:
[u]复制代码[/u] 代码如下:
 public delegate void DoGreeting(string name);     public class Greeting     {         /// <summary>         /// 委托(代理的方法)         /// </summary>         /// <param name="name"></param>         /// <param name="markGreeting"></param>         public void MarkGreeting(string name, DoGreeting markGreeting)         {             markGreeting(name);         }         /// <summary>         /// 用英文打招呼         /// </summary>         /// <param name="name"></param>         public  void GreetingEnglish(string name)         {             Console.WriteLine(name + "hello!");         }         /// <summary>         /// 用中文打招呼         /// </summary>         /// <param name="name"></param>         public void GreetingChinese(string name)         {             Console.WriteLine(name + "你好!");         }     }     class Program     {         [STAThread]         static void Main(string[] args)         {             Greeting greetingObj = new Greeting();             greetingObj.MarkGreeting("张三", greetingObj.GreetingEnglish);             greetingObj.MarkGreeting("李四", greetingObj.GreetingChinese);         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部