首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# (Un)中的委托解释示例-看起来与出现的方法调用相同

C# (Un)中的委托解释示例-看起来与出现的方法调用相同
EN

Stack Overflow用户
提问于 2012-01-21 04:16:38
回答 4查看 536关注 0票数 2

我终于明白了如何使用委托,但我真的搞不懂为什么要用委托而不是方法调用。我发现这个答案贴得很低,但我不知道这两个之间有什么大的区别,因为我可以简单地说

代码语言:javascript
运行
复制
double tot1 = CalcTotalMethod1(100.34);
double tot2 = CalcTotalMethod2(100.34);

而不是

代码语言:javascript
运行
复制
double tot1 = CalcMyTotal(100.34, CalcTotalMethod1);
double tot2 = CalcMyTotal(100.34, CalcTotalMethod2);

这是一个示例:

代码语言:javascript
运行
复制
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);
EN

Stack Overflow用户

发布于 2012-01-21 04:20:40

这是因为你正在处理微不足道的例子……

想象一下,如果你是一个库的设计者,你希望其他人将不同的方法传递到CalcMyTotal中。

或者..。也许更简单,当有人单击用户界面上的按钮时,您希望能够插入不同的功能,以便在单击按钮时执行不同的操作

票数 4
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8947347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档