class Program
{
//委托的声明类似于函数,但不带函数体,且使用关键字delegate,委托的声明指定了一个返回
//类型和一个参数列表
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 two 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);
//process = Multiply也可以
else
process = new ProcessDelegate(Divide);
//process = Divide也可以
Console.WriteLine("Result:{0}",process(param1,param2));
Console.ReadKey();
}
}
C# 委托
最新推荐文章于 2024-11-01 10:58:25 发布