最近在学习委托、事件和异步,遇到一个困惑。
我们一般在声明一个委托的时候,会给定相应的方法签名,如public delegate void myDelegate(string);
现在我的困惑是,在实际应用中,可能会有很多个delegate被同时用到,有时功能相同,有时功能不同,功能不同的可能会有相同的方法签名。
那么这个时候,我应该声明多个名称不同,但签名相同的delegate好呢?还是按照功能,即使签名相同,也声明为不同名称的delegate呢?
比如:delegate1方法参数类型为bool,返回值类型为void,应用中一个是去改变button的enable属性,还有一个是去设置某个类的布尔属性,同样是接受一个bool值,无返回值,那么此时这个delegate是声明为一个好,还是两个好呢?如果要命名的话,又有什么规范吗?

解决方案 »

  1.   

    其实就好比一个普通函数一样 比如 void getmethold (string s)你这里面的S显然可以任意传入,
    同样,比如,有这样一个委托
    public void ProcessPaperbackBooks(ProcessBookDelegate processBook)你传入的委托类型显然只要是否和条件的即可
      

  2.   

    看个人习惯。
    我倾向于按照功能,即使签名相同,也声明为不同名称的delegate。
    因为功能可能修改,导致委托的方法签名要修改。
    按功能分,就不会影响其他模块。
      

  3.   

    相同参数,返回值,就可以公用...这个不回混淆的,
    就好比
    class A   
    {
       public string Print(s)
       {
           return s;
       }
    }
    class B  
    {
       public string Print(s)
       {
           return s;
       }
    }
    这两个类,你能弄混淆了么?不能吧?呵呵.