• 简单的委托示例


    使用委托数组,遍历方法。

    using System;
    
    namespace 简单的委托事例
    {
        //定义一个委托
        delegate double DoubleOp(double x);
        class Program
        {
            static void Main(string[] args)
            {
                //DoubleOp op1= MathOperations.MultiplyByTwo;
                //在这段代码中,实例化了一个DoubleOp委托的数组(记住,一旦定义了委托类,基本上就可以实例化它的实例,
                //就像处理一般的类那样-所以把一些委托的实例放在数组中是可行的)。该数组的每个元素都初始化为指向MathOperations类实现的不同操作。
                //然后遍历这个数组,把每个操作应用到3个不同的值上。这说明了使用委托的一种方式-
                //把方法组合到一个数组中来使用,这样就可以在循环种调用不同的方法了。
                DoubleOp[] operations = {
                    MathOperations.MultiplyByTwo,
                    MathOperations.Square
    
                };
                for(int i = 0;i<operations.Length;i++){
                    System.Console.WriteLine($"Using operation{i}");
                    ProcessAndDisplayNumber(operations[i],2.0);
                    ProcessAndDisplayNumber(operations[i],7.94);
                    ProcessAndDisplayNumber(operations[i],1.414);
                    System.Console.WriteLine();
    
    
                }
               // Console.WriteLine("Hello World!");
            }
            //其中传递了委托名,但不带任何参数。假定operations[i]是一个委托,在语法上:
            //1. operations[i]表示“这个委托”。换言之,就是委托表示的方法。
            //2. operations[i](2.0)表示“实际上调用这个方法,参数放在圆括号中”。
            static void ProcessAndDisplayNumber(DoubleOp action,double value){
                double result = action(value);
                System.Console.WriteLine($"Value is {value},result of operation is {result}");
    
            }
        }
    
        //定义一个类,它有两个静态方法,对double类型的值执行两种操作,然后使用该委托调用这些方法。
        class MathOperations{
            public static double MultiplyByTwo(double value)=>value*2;
            public static double Square(double value)=>value*value;
        }
    }
  • 相关阅读:
    Linux常用指令
    maven报错 java.lang.RuntimeException: com.google.inject.CreationException: Unable to create injector, see the following errors
    Idea 项目jdk环境配置
    Idea 设置maven配置文件settings.xml的位置
    IntelliJ IDEA常用快捷键总结
    Idea 一个窗口打开多个项目
    Git 下拉项目
    Git 删除本地保存的账号和密码
    mysql 查询奇偶数
    redis 短信验证码
  • 原文地址:https://www.cnblogs.com/singhwong/p/11955476.html
Copyright © 2020-2023  润新知