2

拡張されるオブジェクトのデフォルト値を持つ拡張メソッドが必要な状況はありますか?

例えば、

public static class util
{
  public static string Foo(this string name="Hello world")
  {
     return name;
  }
}
4

3 に答える 3

2

そのような状況が発生するかどうかはわかりませんが、それはできません。次のエラーが表示されます。

「this」パラメータのデフォルト値を指定できません

于 2012-10-17T07:31:25.277 に答える
1

このコードでも同じ結果を得ることができます。

public static string Foo(this string name)
{
   if (String.IsNullOrWhiteSpace(name))
       return "Hello world";

   return name;
}

適用できる状況もあると思います。たとえば、null許容価格を文字列に変換する場合です。

于 2012-10-17T07:50:36.960 に答える
1

thisこれはコンパイルされません。パラメーターのデフォルト値を指定することはできません。

できたとしても、呼び出しutil.Foo()てデフォルト値に基づいて動作させるだけです。これは便利だと思います。

于 2012-10-17T07:31:46.183 に答える