拡張されるオブジェクトのデフォルト値を持つ拡張メソッドが必要な状況はありますか?
例えば、
public static class util
{
public static string Foo(this string name="Hello world")
{
return name;
}
}
拡張されるオブジェクトのデフォルト値を持つ拡張メソッドが必要な状況はありますか?
例えば、
public static class util
{
public static string Foo(this string name="Hello world")
{
return name;
}
}
そのような状況が発生するかどうかはわかりませんが、それはできません。次のエラーが表示されます。
「this」パラメータのデフォルト値を指定できません
このコードでも同じ結果を得ることができます。
public static string Foo(this string name)
{
if (String.IsNullOrWhiteSpace(name))
return "Hello world";
return name;
}
適用できる状況もあると思います。たとえば、null許容価格を文字列に変換する場合です。
this
これはコンパイルされません。パラメーターのデフォルト値を指定することはできません。
できたとしても、呼び出しutil.Foo()
てデフォルト値に基づいて動作させるだけです。これは便利だと思います。