C\delegate example

From , 3 Years ago, written in C#, viewed 54 times.
URL https://pastebin.vip/view/357cfba1
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace Delegate
  6. {
  7.   //委托简单说就是可以让方法作为变量进行传递.
  8.  //定义委托,它定义了可以代表的方法的类型
  9.  
  10.    public delegate void MyDelegate(string name);
  11.        
  12.    
  13.     class Program
  14.         {
  15.             //定义两个和委托相同参数的相同返回值的方法.  要和委托绑定的好像只能是静态方法.因为不是静态方法IDE会报错.
  16.         public static void ShowMessage(string Message)
  17.             { Console.WriteLine("Hello" + Message); }
  18.  
  19.         public static void SHowMessage(string Message) // 在C#中是区分大小写的,所以这个方法和上面那个不是一样的.
  20.             { Console.WriteLine("你好" + Message); }
  21.  
  22. static void Main()
  23.         {
  24.             //定义一个委托变量. 然后绑定方法.
  25.             MyDelegate My = new MyDelegate(ShowMessage);
  26.             //现在可以通过这个委托变量来使用方法了.
  27.             My(" Tony");  //这里会输出Hello Tony.   疑问来了. 我们为什么直接使用方法呢? 还定义一个委托变量干嘛? 多写了几行代码. // 其实委托的用处不是在这里. 我们可以试试这样.
  28.  
  29.            // 委托链, 一个委托变量绑定多个方法.
  30.             My += SHowMessage;
  31.             //输出看看
  32.             My("Tony");  //输出结果将是 HelloTony and 你好Tony.
  33.  
  34.  
  35.  
  36.         }
  37. //////////////// 分割线, 在方法中传递方法.用方法做参数///////////////////////////////////////////////////////
  38.         //定义一个方法.
  39.         public static void input(string name, MyDelegate Message) //这里面的Message就是委托变量了. 你可以将一个方法传递进去.
  40.         {
  41.             Message(name);
  42.         }
  43.  
  44.  
  45.             //////使用方法来作为参数.///////////////
  46.             input("Tony" , ShowMessage);
  47.             input("Tony",SHowMessage);
  48.  
  49. } }
  50. //csharp/5390

Reply to "C\delegate example"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website