zoukankan      html  css  js  c++  java
  • 委托

    委托就是定义了方法的类型,就想"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类型。
    他和我们以前定义的对象区别在于:

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

  • 相关阅读:
    linux awk命令详解
    Linux 大页面使用与实现简介(转)
    二层设备与三层设备的区别--总结
    Windows下的cd命令
    linux常用命令
    上班第一天
    linux 内核移植和根文件系统的制作
    Sizeof与Strlen的区别与联系
    嵌入式软件工程师面试题
    SpringBoot简单打包部署(附工程)
  • 原文地址:https://www.cnblogs.com/yinyakun/p/3232979.html
Copyright © 2011-2022 走看看