zoukankan      html  css  js  c++  java
  • delegate

    // 可以接受若干参数的委托
        public delegate double Method( params int[] numbers);

        public class Demo
        {


            public double Times( params int[] numbers)
            {
                double result = 1;
                foreach (int i in numbers)
                    result *= i;
                return result;
            }

            public double Div(params int[] numbers)
            {
                if (numbers == null || numbers.Length == 0)
                    throw new InvalidOperationException("参数错误");
               
                if (numbers.Length == 1)
                    return numbers[0];

                double first = numbers[0];
                int length = numbers.Length;

                for (int i = 1; i < length; i++)
                {
                    int x = numbers[i];
                    if (x == 0)
                        throw new InvalidOperationException("错误的参数");

                    first /= x;
                }

                return first;
            }
        }


        public class Calculator
        {

            public Method Times;
            public Method Div;

            public Calculator()
            {
            }

            public double MyTimes(params int[] numbers)
            {
                return this.Times(numbers);
            }

            public double MyDiv(params int[] numbers)
            {
                return this.Div(numbers);
            }

        }

        class Program
        {


            static void Main(string[] args)
            {
                // 装配
                Calculator calculator = new Calculator();

                Demo demo = new Demo();

                calculator.Times = demo.Times;
                calculator.Div = demo.Div;

                // 使用计算器
                double r = calculator.MyTimes(1, 2, 3, 4);
                Console.WriteLine(r);

                double r2 = calculator.MyDiv(12, 2, 3);
                Console.WriteLine(r2);
            }}

  • 相关阅读:
    bug记录_signalr执行$.connnection.testhub结果为空
    mysql存储过程
    docker安装svn
    Redis在windows下安装过程
    JAVA日期查询:季度、月份、星期等时间信息
    VueX(Vue状态管理模式)
    Lambda常用写法
    Docker部署SpringBoot项目
    vue+nginx+docker 的前端项目部署方案
    docker常用操作
  • 原文地址:https://www.cnblogs.com/lovehappy/p/2168661.html
Copyright © 2011-2022 走看看