既然返回值参数和方法都相同,为什么要用委托

xywain 2005-11-28 04:02:36
看下面的例子:
form1中:
public static double Low(double T)
{
return 0.02*T;
}


private void button1_Click(object sender, System.EventArgs e)
{
double result;
DelegateCompute dc;
dc= new DelegateCompute(Form1.Low);
result = MoneyCompute.Compute(1000.0,dc);
另一个文件中MoneyCompute类:
using System;

public delegate double DelegateCompute(double x);

namespace WindowsApplication3
{
/// <summary>
/// Summary description for MoneyCompute.
/// </summary>
public class MoneyCompute
{

public static double Compute(double t, DelegateCompute dc)
{
return dc(t);
}

public MoneyCompute()
{
//
// TODO: Add constructor logic here
//
}
}
}
感觉搞得复杂好难理解啊,绕啊绕
...全文
189 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxxxxxxxx 2005-11-28
  • 打赏
  • 举报
回复
当一个类想运行另一个类的某方法的时候
shrinerain 2005-11-28
  • 打赏
  • 举报
回复
用于替代C++中的 指向函数的指针
loveyzy 2005-11-28
  • 打赏
  • 举报
回复
再加一个:
public static double High(double T)
{
return 0.5*T;
}

这样的话,就可以用代理将High方法作为参数来传递,这不是很方便吗,这就是代理的作用
happyfamily 2005-11-28
  • 打赏
  • 举报
回复
是啊,我感觉也很绕的,不过委托是解决同一模型问题的好办法。

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧