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();
}
}
}
浙公网安备 33010602011771号