以下のようなかんじで、interfaceでstrategyパターンを実現しつつ、
何も引数指定しない場合を同名関数の引数違いとして実装したいんだけど、当然interfaceでは実装はかけないからエラーになりまs。
これを実装するうまい方法をご存じないでしょうか?
やはり、すべてのクラスに引数違いの関数をコピペで作るか、基底クラスとして作って継承させるしかないんでしょうか?
前者だと同じ内容なのにコードが分散するし、後者だとコンパイラが関数未実装のときにエラーをはいてくれません。
interace IHoge
{
  string FuncFoo(byte[] data, Encoding encode);
  // 以下はエラーだけどイメージとして
  string FuncFoo(byte[] data)
  {
   // 何も指定しないとSHIFT-JIS
   return FuncFoo(byte[] data, Encoding.GetEncoding(932));
  }
}