• 匿名方法示例之计算器(委托作为参数和返回值)


     1using System;
     2using System.Collections.Generic;
     3using System.Linq;
     4using System.Text;
     5
     6namespace Calculator
     7{
     8    public delegate double MathFunction(double a,double b);
     9    //主程序代码
    10    class CalTest
    11    {
    12        static void Main()
    13        {
    14            Console .Write ("请输入数值a :");
    15            Double a=double .Parse (Console .ReadLine ());
    16            Console .Write ("请输入数值b :");
    17            Double b=double .Parse (Console .ReadLine ());
    18            Console.WriteLine("请在下面的列表中选择函数:");
    19            Console .WriteLine ("加 (1) \n减 (2) \n 乘 (3) \n除 (4) \n求余 (5) \n乘方 (6) \n开方 (7) \n对数 (8) ");
    20            int iMethod=int.Parse (Console .ReadLine ());
    21            MathFunction myFunc=PrimaryFunc.AFunc (iMethod );
    22            Console .WriteLine ("计算结果为:{0}",myFunc (a ,b ));
    23            Console .ReadLine ();
    24        }
             
    25    }

    26    public class PrimaryFunc
    27    {
    28        public static MathFunction AFunc(int i)
    29        {
    30            switch (i)
    31            {
    32                case 1:
    33                    return delegate(double a, double b) return a + b; };
    34                case 2:
    35                    return delegate(double a, double b) return a - b; };
    36                case 3:
    37                    return delegate(double a, double b) return a * b; };
    38                case 4:
    39                    return delegate(double a, double b) return a / b; };
    40                case 5:
    41                    return delegate(double a, double b) return a % b; };
    42                case 6:
    43                    return delegate(double a, double b) return Math .Pow (a ,b ); };
    44                case 7:
    45                    return delegate(double a, double b) return Math.Pow(a,1/b); };
    46                case 8:
    47                    return delegate(double a, double b) return Math.Log (a, b); };
    48                default:
    49                    return delegate(double a, double b) return 0; };
    50            }

    51        }

    52    }

    53
    54}

    55
    56
    运行结果如下:
  • 相关阅读:
    加快火狐启动速度的几种方法 Leone
    我国的社保到底是多交好,还是少交好? Leone
    “情商”和“智商”究竟有哪些区别? Leone
    Atitti 知识图谱构建方法attilax 总结
    Atitit 知识图谱的数据来源
    Atitit java 二维码识别 图片识别
    Atitit 跨平台异常处理(2)异常转换 java c# js异常对象结构比较and转换
    Atitit 异常机制与异常处理的原理与概论
    Atitti knn实现的具体四个距离算法 欧氏距离、余弦距离、汉明距离、曼哈顿距离
    屏幕取词技术实现原理
  • 原文地址:https://www.cnblogs.com/markhe/p/1554710.html
Copyright © 2020-2023  润新知