最近在学习委托、事件和异步,遇到一个困惑。
我们一般在声明一个委托的时候,会给定相应的方法签名,如public delegate void myDelegate(string);
现在我的困惑是,在实际应用中,可能会有很多个delegate被同时用到,有时功能相同,有时功能不同,功能不同的可能会有相同的方法签名。
那么这个时候,我应该声明多个名称不同,但签名相同的delegate好呢?还是按照功能,即使签名相同,也声明为不同名称的delegate呢?
比如:delegate1方法参数类型为bool,返回值类型为void,应用中一个是去改变button的enable属性,还有一个是去设置某个类的布尔属性,同样是接受一个bool值,无返回值,那么此时这个delegate是声明为一个好,还是两个好呢?如果要命名的话,又有什么规范吗?
我们一般在声明一个委托的时候,会给定相应的方法签名,如public delegate void myDelegate(string);
现在我的困惑是,在实际应用中,可能会有很多个delegate被同时用到,有时功能相同,有时功能不同,功能不同的可能会有相同的方法签名。
那么这个时候,我应该声明多个名称不同,但签名相同的delegate好呢?还是按照功能,即使签名相同,也声明为不同名称的delegate呢?
比如:delegate1方法参数类型为bool,返回值类型为void,应用中一个是去改变button的enable属性,还有一个是去设置某个类的布尔属性,同样是接受一个bool值,无返回值,那么此时这个delegate是声明为一个好,还是两个好呢?如果要命名的话,又有什么规范吗?
解决方案 »
- c# sessionid判断
- Microsoft.JScript..Eval.JScriptEvaluate 能向JScript中传递参数吗?
- 正则表达式
- c# winform里如何获取有焦点的控件
- 初学的体会,不知有没有同感.希望过来人讲讲体会。
- MM美工50分问个问题! 我要怎么设置才能让做的网页不受屏幕分辨率的影响.
- 如何才能在内存中找到正在运行的其它程序的窗口内的控件的句柄或值?
- 我正在学用三层结构做c#的全站程序,想请问大侠几个问题,谢谢!
- 最后10分,请高手帮帮忙:哪里有c#(winform)控件的使用说明?
- c#照着书上的怎么出错了???
- c# 中控件的右击双击事件并存
- webBrowser1弹窗问题,我要在原来的窗口显示弹出的页面
同样,比如,有这样一个委托
public void ProcessPaperbackBooks(ProcessBookDelegate processBook)你传入的委托类型显然只要是否和条件的即可
我倾向于按照功能,即使签名相同,也声明为不同名称的delegate。
因为功能可能修改,导致委托的方法签名要修改。
按功能分,就不会影响其他模块。
就好比
class A
{
public string Print(s)
{
return s;
}
}
class B
{
public string Print(s)
{
return s;
}
}
这两个类,你能弄混淆了么?不能吧?呵呵.