委托是什么?我搞不明白,谁能帮我详细解释下,顺便附个小例子,谢谢啦
解决方案 »
- public int? Audit 这个问号表示什么意思??
- The dialect was not set. Set the property hibernate.dialect.
- 异常信息:DataAdapter.SelectCommand 属性需要初始化
- 怎么用DropDownList显示出生年月日
- 怎么用C/S程序调出IE浏览器并打开指定的页面?
- 在线请教,关于ACTIVE控件,无法加载图片问题
- winform里dataGrid1.DataBind();怎么报错?
- 菜鸟求救。ASP页面js调用cs里面方法的问题。
- C#高斯滤波,结果出错
- 想问一下,我想在两个Form间传递叁数,当一个关闭时,传 给别一个form它的数据.怎么办?
- 关于p-involve的问题
- 简单的登录框问题
这里有个进度条程序
很详细的
一般的函数int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int multiplication(int a,int b)
{
return a*b;
}
int division(int a,int b)
{
return a/b;
}
int run(int operator_index,int a,int b)
{
switch(operator_index)
{
case 0:
return add(a,b);
break;
case 1:
return sub(a,b);
break;
case 2:
return multiplication(a,b);
break;
case 3:
return division(a,b);
break;
}
}修改为委托的方式int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int multiplication(int a,int b)
{
return a*b;
}
int division(int a,int b)
{
return a/b;
}
//定义委托
delegate int operateHandler(int a,int b);
//定义委托数组
operateHandler[] ops = {add,sub,multiplication,division};
operateHandler GetOperatorDelegate(int operator_index)
{
//根据索引返回一个委托实例
if(operator_index<0 || operator_index>=ops.Length) return ops[0];
return ops[operator_index];
}
//调用地方
int run(int operator_index,int a,int b)
{
//这里直接用返回的委托来操作,就在最终的run函数内,不用那么多判断,减少代码维护量
operateHandler op = GetOperatorDelegate(operator_index);
return op(a,b);
}