C#基础(005)---委托与函数

C#基础---委托与函数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    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;
        }
      
        //再定义一个函数---无返回值---输出4相关
        static void ExecuteFunction(double param1, double param2, ProcessDelegate process)
        {
            Console.WriteLine(process(param1, param2));
        }

        //再定义一个函数---有返回值
        //static double ExecuteFunction(double param1, double param2, ProcessDelegate process)
        //{
        //    return process(param1, param2);
        //}

        static void Main(string[] args)
        {
            //ProcessDelegate process;
            //Console.WriteLine("Enter 2 number separated with a comma:"); //输入两个double数字并用“,”逗号分隔开
            //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);
            //输出1
            //Console.WriteLine("Result:{0}", process(param1, param2));
            //Console.ReadKey();


            //将委托当作参数传给函数---输出2
           //Console.WriteLine("Result:{0}",ExecuteFunction(2.2, 3.3, Multiply)); //有返回值
           //Console.ReadKey();

            //输出3
            //Console.WriteLine(ExecuteFunction(2.2, 3.3, Multiply)); //有返回值
            //Console.ReadKey();


            //输出4
          ExecuteFunction(2.2, 3.3, Multiply);
          Console.ReadKey();
           
        }
      
       
    }

}

posted on 2014-04-18 01:37  lbsf  阅读(144)  评论(0)    收藏  举报

导航