我终于明白了如何使用委托,但我真的搞不懂为什么要用委托而不是方法调用。我发现这个答案贴得很低,但我不知道这两个之间有什么大的区别,因为我可以简单地说
double tot1 = CalcTotalMethod1(100.34);
double tot2 = CalcTotalMethod2(100.34);而不是
double tot1 = CalcMyTotal(100.34, CalcTotalMethod1);
double tot2 = CalcMyTotal(100.34, CalcTotalMethod2);这是一个示例:
public static double CalcTotalMethod1(double amt)
{
    return amt * .014;
}
public static double CalcTotalMethod2(double amt)
{
    return amt * .056 + 42.43;
}
public delegate double calcTotalDelegate(double amt);
public static double CalcMyTotal(double amt, calcTotalDelegate calcTotal)
{
    return calcTotal(amt);
}
double tot1 = CalcMyTotal(100.34, CalcTotalMethod1);
double tot2 = CalcMyTotal(100.34, CalcTotalMethod2);
Console.WriteLine(tot1);
Console.WriteLine(tot2);发布于 2012-01-21 04:20:40
这是因为你正在处理微不足道的例子……
想象一下,如果你是一个库的设计者,你希望其他人将不同的方法传递到CalcMyTotal中。
或者..。也许更简单,当有人单击用户界面上的按钮时,您希望能够插入不同的功能,以便在单击按钮时执行不同的操作
https://stackoverflow.com/questions/8947347
复制相似问题