委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
委托的关键字delegate;示例代码如下:
- delegate double TwoNumber(double a, double b);//定义委托,double类型
- static double Multiply(double a, double b) => a * b;//乘法 浪漫哒表达式
- static double Divide(double a, double b) => a / b;//除法 浪漫哒表达式
- static void Main(string[] args){
- TwoNumber two;
Console.WriteLine("请输入两个数");
string input = Console.ReadLine();
string[] str = input.Split(' ');//以空格作为分隔符,用数组存储
double a = Convert.ToInt32(str[0]);//第一个数
double b = Convert.ToInt32(str[1]);//第二个数
Console.WriteLine("选择计算方式M(乘法),D(除法)");
input = Console.ReadLine().ToLower();
if (input == "m")
{
two = new TwoNumber(Multiply);
}
else {
two = new TwoNumber(Divide);
}
Console.WriteLine($"{two(a,b)}"); - }