zoukankan      html  css  js  c++  java
  • 简单的委托示例

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

    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;
        }
    }
  • 相关阅读:
    【Luogu】P3381最小费用最大流模板(SPFA找增广路)
    【Luogu】P1393动态逆序对(树套树)
    【Luogu】P2617Dynamic Ranking(树状数组套主席树)
    【Luogu】P2953牛的数字游戏(博弈论)
    【Luogu】P2530化工厂装箱员(DP)
    【Luogu】P3856公共子串(DP)
    【Luogu】P3847调整队形(DP)
    【Luogu】P3567Kur-Couriers(主席树)
    【Luogu】P3758可乐(矩阵优化DP)
    【Luogu】P1131时态同步(树形DP)
  • 原文地址:https://www.cnblogs.com/singhwong/p/11955476.html
Copyright © 2011-2022 走看看