• 委托的小例子(基本委托,匿名方法,lambda)


        //0、没有返回值,也没有参数的委托
        delegate void MyDelEmpty();
        //1、没有返回值,有一个参数的委托(用于基本的实例)
        delegate void MyDel(int x);
        //2、带有返回值,有一个参数的委托(用于匿名方法)
        delegate int MyDelWithReturn(int x);
        //3、带有返回值,有多参数的委托(用于lambda)
        delegate int MyDelWithReturnAndMultiParams(int x, int y);
        class Program
        {
            //没有返回值的方法
            static void MyDelFunc(int x)
            {
                Console.WriteLine(x);
            }
            static void Main(string[] args)
            {
                //1、最基本的委托实例
                //这个委托会调用与委托相同签名的方法(相同的返回类型和参数类型及参数数量)
                Console.WriteLine("Delegate with basic");
                MyDel myDel = new MyDel(MyDelFunc);
                myDel(2);
                Console.WriteLine("Delegate with anonymous method");
                //2、匿名方法
                //匿名方法不会显式地声明返回值,但实现代码本身的行为必须通过返回一个在类型上与委托返回类型相同的值来匹配委托的返回类型。如果委托本身是void返回类型,匿名方法就不能返回值。
                //匹配带有返回值的委托
                MyDelWithReturn myDelWithReturn = delegate (int x) { return x + 20; };
                Console.WriteLine(myDelWithReturn(2));
                //匹配没有返回值的委托
                MyDel mydel2 = delegate (int x) { Console.WriteLine(x); };
                mydel2(2);
                //3、lambda
                //匹配没有返回值有参数的lambda表达式
                MyDel lambda1 = x => Console.WriteLine(x);
                lambda1(1);
                //匹配有返回值有参数的lambda表达式
                MyDelWithReturn lambda2 = x => x + 2;
                Console.WriteLine(lambda2(1));
                //匹配没有参数的lambda表达式
                MyDelEmpty lambda3 = () => Console.WriteLine("no return,no parameter");
                lambda3();
                //匹配多参数的lambda表达式
                MyDelWithReturnAndMultiParams lambda4 = (x, y) => x + y;
                Console.WriteLine($"{lambda4(2, 3)}");
                Console.ReadLine();
            }
        }
  • 相关阅读:
    优雅地处理重复请求(并发请求)
    TSCTF2022(先挖个坑,太忙了呜呜呜)
    dotnet core 热重载调试Web Api
    Amazon Max deviation among all substrings
    javascript挑战编程技能第九题:数据结构
    javascript挑战编程技能第八题:99乘法表
    git获取代码和推送代码实例
    vue 项目打包和 安装项目依赖命令
    vscode 如何新建分支
    码云创建公钥 使其可以本地输入命令访问
  • 原文地址:https://www.cnblogs.com/NicolasLiaoran/p/13130605.html
Copyright © 2020-2023  润新知