C#使用相同代码重构方法,但不同的函数调用除外

时间:2017-03-29 20:01:19

标签: c# refactoring

变化的函数具有不同的参数,需要返回值。

示例:

public T Foo(a, b, c, func_pointer)
{
   //common code 
   if(no errors)
   {
      return func_pointer(a, b, c)
   }
   //common code 
}

public T Foo(a, b, c, **d**, func_pointer)
{
   //common code 
   if(no errors)
   {
      return func_pointer(a, b, c, **d**)
   }
   //common code 
}

有没有避免代码重复?

1 个答案:

答案 0 :(得分:1)

处理此问题的一种方法是让具有较少参数的方法使用下一个更大数量的参数调用该方法,为缺少的args传递默认值。然后链中的最后一个方法具有实际代码,并使用默认值执行任何必要的操作。

相关问题