使用委托来调用函数

来源:互联网 发布:网络上有重名 编辑:程序博客网 时间:2024/06/05 15:46

C#中可以使用委托来调用函数,具体这样实现的好处有待以后慢慢领悟,下面是实现的简单代码,与大家分享

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication7{    class Program    {        delegate double ProcessDelegate(double param1 ,double param2); //定义一个委托,参数类型和返回值很相似于函数        static double Multiply(double param1 ,double param2) //定义全局函数        {             return param1 * param2;         }        static  double Divide(double param1 ,double param2)  //定义全局函数        {             return param1 / param2;        }        static void Main(string[] args)        {            ProcessDelegate process; //有委托类型声明变量            Console.WriteLine("Enter 2 numbers separated with a comma:");            string input = Console.ReadLine();            int commaPos = input.IndexOf (','); // 请求有逗号分隔的两个数            double param1 = Convert.ToDouble(input.Substring(0,commaPos));            double param2 = Convert.ToDouble(input.Substring(commaPos +1,                                              input.Length - commaPos -1));            Console.WriteLine("Enter M to multiply or D to divide:");            input = Console.ReadLine();            if(input == "M")               process = new ProcessDelegate(Multiply);            else               process = new ProcessDelegate(Divide);            Console.WriteLine("Result: {0} ",process(param1,param2));            Console.ReadKey();        }    }}