C#4.0 では、メソッドにデフォルトのパラメーターを許可することで、非常に凝った便利な機能が導入されました。しかし、C#3.0 はそうではありません。したがって、「デフォルト パラメーター」をシミュレートする場合は、そのメソッドを 2 つ作成する必要があります。1 つはそれらの引数を持ち、もう 1 つはそれらの引数を持たないものです。これを行うには2つの方法があります。
バージョン A - 他のメソッドを呼び出す
public string CutBetween(string str, string left, string right, bool inclusive)
{
return str.CutAfter(left, inclusive).CutBefore(right, inclusive);
}
public string CutBetween(string str, string left, string right)
{
return CutBetween(str, left, right, false);
}
バージョン B - メソッド本体をコピーする
public string CutBetween(string str, string left, string right, bool inclusive)
{
return str.CutAfter(left, inclusive).CutBefore(right, inclusive);
}
public string CutBetween(string str, string left, string right)
{
return str.CutAfter(left, false).CutBefore(right, false);
}
これらの間に実際の違いはありますか?これは、最適化やリソースの使用法などに関する質問ではありません (一貫性を維持するという私の一般的な目標の一部ですが)、どちらかの方法を選択することに大きな影響があるとは思いませんが、これらのことについては、誤って推測するよりも、質問する方が賢明です。