用委托实现计算器的加、减、乘、除计算功能,要求在主函数中输 入两个操作数和一个操作符,调用适当的方法,返回计算结果。
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Func<double, double, double> fun = Add;
fun += Des;
fun += Cheng;
fun += Chu;
Delegate[] delegateList = fun.GetInvocationList();
Console.WriteLine("输入第一个数:");
double a =Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入第二个数:");
double b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("输入运算符");
Console.WriteLine("1:+ 2:- 3:* 4:/");
char re =Convert.ToChar(Console.ReadLine());
switch (re)
{
case '+':
//Console.WriteLine(Add(a, b));
double t =(double)delegateList[0].DynamicInvoke(a, b);
Console.WriteLine(t);
break;
case '-':
//Console.WriteLine(Des(a, b));
double t1 = (double)delegateList[1].DynamicInvoke(a, b);
Console.WriteLine(t1);
break;
case '*':
//Console.WriteLine(Cheng(a, b));
double t2 = (double)delegateList[2].DynamicInvoke(a, b);
Console.WriteLine(t2);
break;
case '/':
//Console.WriteLine(Chu(a, b));
double t3 = (double)delegateList[3].DynamicInvoke(a, b);
Console.WriteLine(t3);
break;
default:
Console.WriteLine("您输入的运算符不正确");
break;
}
Console.ReadKey();
}
static double Add(double a, double b) {
return a + b;
}
static double Des(double a, double b)
{
return a - b;
}
static double Cheng(double a, double b)
{
return a * b;
}
static double Chu(double a, double b)
{
return a / b;
}
}
}