• 委托


    委托就是定义了方法的类型,就想"hello" 的类型是String 类型一样。

    例如:下面的委托例子

     1 namespace delegate_tesst
     2 {
     3     public delegate void SayDelegate(string name);
     4     public class ClassPeople
     5     {
     6         public void saychinese(string name)
     7         {
     8             Console.WriteLine("你好,"+name );
     9         }
    10         public void sayenglish(string name)
    11         {
    12             Console.WriteLine("hello ,"+name);
    13         }
    14         public void dowork(string name, SayDelegate MakeSay)//此方法它接收一个SayDelegate类型的方法做为参数
    15         {
    16             MakeSay(name);
    17         }
    18     }
    19     class Program
    20     {
    21         static void Main(string[] args)
    22         {
    23             ClassPeople c1 = new ClassPeople();
    24             //委托
    25             Console.WriteLine("下面是委托:");
    26             SayDelegate saymethod1 = c1.saychinese;
    27             SayDelegate saymethod2 = c1.sayenglish;
    28             c1.dowork("张三", saymethod1);
    29             c1.dowork("zhangsan", saymethod2);
    30 
    31 
    32             //多播委托
    33             Console.WriteLine("下面是多播委托:");
    34             SayDelegate saymethod = c1.saychinese;
    35             saymethod += c1.sayenglish;
    36             c1.dowork("zhangsan",saymethod);
    37             
    38             Console.ReadKey();
    39         }
    40     }
    41 }

    我们声明了委托,和多播委托。这里方法的类型就是SayDelegate类型。
    他和我们以前定义的对象区别在于:

      以前我们定义的对象都包含数据,而委托包含的只是方法的地址。

  • 相关阅读:
    Ztree-
    富文本编辑器Ueditor
    通知 弹框
    ResultEntity
    echart
    定时器,定时发邮件JavaMail
    重定向传值
    图片验证码
    异步json发送put或者delete
    异步时间格式转换插件
  • 原文地址:https://www.cnblogs.com/yinyakun/p/3232979.html
Copyright © 2020-2023  润新知