传递参数的最佳实践,可以采用两个值

And*_*hin 3 .net c# coding-style

怎么写得更好?

public void Foo(bool isStart) {
   // Code [Common]
   if (is Start) {
      // Code [Start]
   } else {
      // Code [End]
   }
   // Code [Common]
}
Run Code Online (Sandbox Code Playgroud)

要么

public enum MyEnum {
   Start, End
}
public void Foo(MyEnum param) {
   // Code [Common]
   switch (param) {
      case MyEnum.Start:
         // Code [Start]
         break;
      case MyEnum.End:
         // Code [End]
         break;
   }
   // Code [Common]
}
Run Code Online (Sandbox Code Playgroud)

更新:我正在寻找一个小解决方案."Common","Start"和"End"部分都很短,我不想Foo分成几种方法.

Mit*_*eat 9

怎么样:

public class Foo
{
    public void Start()
    {
        PreCommon();

        // Code [Start]

        PostCommon();
    }

    public void Stop()
    {
        PreCommon();

        // Code [Stop]

        PostCommon();
    }

    private void PreCommon()
    {
        // Code [Pre-Common]
    }  

    private void PostCommon()
    {
        // Code [Post-Common]
    }    
    ...

}
Run Code Online (Sandbox Code Playgroud)

具有单一职责的方法更易于阅读,更易于理解且更易于维护.