namespace Delegate
{
public delegate double Mydelegate(double x,double y);//注意参数
class myMethod
{
public static double Multiply(double x, double y)//被委托的方法 必须与委托的方法的参数一致
{
return x * y;
}
public static double Add(double x, double y)
{
return x + y;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("输入两个数字");
double x = Convert.ToDouble(Console.ReadLine());
double y = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("选择A为相加,选择M为相乘");
string s = Console.ReadLine();
Mydelegate md;
if (s.ToUpper()== "A")
{
md = new Mydelegate(myMethod.Add);//相当于把相加的方法 委托给了md
}
else
{
md = new Mydelegate(myMethod.Multiply);//注意,这里的方法不用写()
}
Console.WriteLine(md(x, y));
Console.Read();
}
}
}