zoukankan      html  css  js  c++  java
  • 委托的定义使用

    一.什么委托:

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。

      • 在方法重载的上下文中,方法的签名不包括返回值
      • 在委托的上下文中,方法的签名是包含返回值的

    二.委托的定义:

      委托(delegate)的声明的语法如下:

        public delegate void Del(string parameter);

      委托的使用方法:

    public delegate void Del(string parameter);//声明委托
    class Program
    {
        static void Main(string[] args)
        {
            Del del = WeiTuo;  //指向具有相同签名的方法
            del("ok");     //通过委托来进行调用
            Console.ReadKey();
        }
        public static void WeiTuo(string str)//与声明有相同的签名
        {
            Console.WriteLine("委托"+str);
        }  
    }
    View Code

    三.委托的属性概述:

      1. 类似于C和C++中的函数指针,但他们是类型安全的
      2. 允许将方法作为参数进行传递
      3. 可用于定义回调方法
      4. 委托类型派生自.NET Framework中的Delegate类,委托类型是封装的,不能派生出其他类

    四.委托的简单演化过程:

    public delegate void MyDel();
    class Program
    {
        static void Main(string[] args)
        {
            MyDel del1 = new MyDel(WeiTuo);  //大于等于C#1
            MyDel del2 = WeiTuo;            //大于等于C#2,上面的简化版
            MyDel del3 = delegate()
            {
                Console.WriteLine("匿名方法委托");
            };
            MyDel del4 = () => {
                Console.WriteLine("lambda表达式");
            };
            del4();
            Console.ReadKey();
        }
        public static void WeiTuo()
        {
            Console.WriteLine("委托");
        } 
    }

    五.泛型委托:

      Action(无返回值泛型委托)  

             

      Func(有返回值泛型委托)

          

    Func<int,bool>表示:int为输入参数,bool为返回值
    Func<int,int,bool>表示:2个int为输入参数,一个bool为返回值

    六.Lambda简介:

       Lambda表达式,是一种简化的匿名函数。可以用于创建委托或表达式目录树。其次,也可以将Lambda表达式作为参数进行传递

           匿名方法:  

              //定义委托
              delegate void Add(int a,int b);
              //实例委托,使用匿名方法
              Add add = delegate(int a, int b)
                    {
                      Console.WriteLine(a + "+" + b + "=" + (a + b));
                    };
            调用:
              add(10,29);
     
    Lambda的诞生:

      Lambda表达式的语法基本形式:

        基本形式:(输入参数)=>表达式

             (输入参数)=>{表达式}

    写法:
    ()=>true; X=>x==1; (X)=>x==1; (x,y)=>x==y;
  • 相关阅读:
    plsql各版本官网下载地址
    docker容器启动rabbitmq并开启web控制台
    SM3杂凑算法实现
    快速设置IP、DNS等信息的bat脚本
    Windows下nginx的启动,重启,关闭等功能bat脚本
    记一次docker容器中运行springboot程序日志打印的中文变成问号
    calico 指定pod 网段
    helm 的安装使用
    K8s 节点断开连接后,本在运行的 Pod 会如何?
    nginx docker 安装ping 命令
  • 原文地址:https://www.cnblogs.com/fengxuehuanlin/p/6503394.html
Copyright © 2011-2022 走看看