zoukankan      html  css  js  c++  java
  • 委托的基本认识

    1.什么是委托?

    1.1委托是一种引用类型,该类型适用于将方法用特定的签名封装,我们可以将委托理解为一个封装了函数指针和方法的特殊类型。

    1.2使用委托我们可以将方法封装在委托中,然后调用委托就可以调用其中的方法

    2.委托的基本声明格式

    修饰符 delegate 返回类型 委托名(参数列表)——返回类型和参数列表要和方法一致

    3.如何理解委托

     3.1我们可以将委托看作一个箱子,将返回类型和参数列表看作是放进箱子物品的约束了,

    将方法看作一个能都被放进箱子里面的物品,当约束被满足,我们就可以将方法放到箱子里面。

    4.委托的基本使用规则

    4.1首先我们先声明一个委托

    4.2创建一个委托实例

    4.3根据委托定义一个方法

    4.4使用委托调用方法

    4.5将委托与方法关联起来

    5.下面通过代码理解委托

    5.1首先我们有一个用来打印字符串的类

    class PrintClass
    {
    //.定义一个用来打印字符串的方法
    public void Print(string str)
    {
    Console.WriteLine(str);
    }
    }

     

    5.2现在我们定义一个用来打印Hello的类 里面有一个打印Hello的方法,但是我们不想在自己里面来做打印的动作,我们想要将这个动作交给 PrintClass来做

    好了现在我们可以使用委托来完成这件事

    class HelloClass
    
     {
    
      public void PrintHello()
    
      {
    
       }
    
      }

     

    5.2.1首先我们先在类外声明一个委托

    public delegate void PrintHandler(string str);

    5.2.2我们在 HelloClass类中创建一个委托实例

      public PrintHandler PrintHandle;

     

    5.2.3由于我们已经有一个方法了所以这一步跳过 如果没有 我们就创建一个方法

    5.2.4我们在PrintHello中调用委托激活方法

    //打印Hello
    public void PrintHello()
    {
    
    //我们要在这里判断一下委托是否可以被调用
    if(PrintHandle!=null)
    {
    //5.激活委托
    
    PrintHandle.Invoke("Hello");
    
    }
    }

     

     

    5.2.5 我们现在已经准备好了只要将委托与方法关联起来 当调用HelloClass中的PrintHello()的时候 就会调用到PrintClass中的Ptint()

    static void Main(string[] args)
    {
    PrintClass Pc = new PrintClass();
    HelloClass Hc = new HelloClass();
    //4.将委托和方法关联
    Hc.PrintHandle = Pc.Print;
    
    
    Hc.PrintHello();
    }

     

    6.最后希望可以帮助大家对委托有一个基本的认识

  • 相关阅读:
    易用性问题回复
    阅读心得2:《余额宝技术架构及演进 》
    假期周进度报告8
    假期周进步报告7
    假期周进度报告6
    假期周进度报告5
    假期周进度报告4
    假期周进度报告3
    JAVA中SSH框架
    一张图说明CDN网络的原理
  • 原文地址:https://www.cnblogs.com/KeyThink/p/7261753.html
Copyright © 2011-2022 走看看