一个方法,有很多参数,有一个参数类型两种类型,导致方法内部处理的代码不同,但只影响一点。要是按着两种类型,写两个重载方法,又觉得大部分代码一样,就几句因参数改变而改变。请教一下有没有办法?

解决方案 »

  1.   

    该参数的类型可以用公共父类,比如object。方法体内判断object的实际类型,然后进行不同的处理。
    比如:
    if(obj.GetType().Name=="TextBox")
    //转成TextBox处理;
    else
    //转成Label处理;
      

  2.   

    同意2楼,
    void foo( object arg, ... )
     if ( arg is ArgType1 )
    {  
       ArgType1 type1 = arg as ArgType1;
       ...
    }
    else if (arg is ArgType2)
    {  
       ArgType2 type2 = arg as ArgType2;
    }