どの慣用法は、指定された場合なたにとって、望ましいネーミング"にこの"パラメータへの拡張方法クライアントまで、フルのC#となぜですか?

StackOverflow https://stackoverflow.com/questions/716609

質問

最初のパラメータはC#の拡張のインスタンスのメソッドが呼び出されたとき。を採用している熟なので、他の場所での通話が可変なります。不思議している場合、その他使用しています。次に例を示します。

public static void Print(this string self)
{
   if(self != null) Console.WriteLine(self);
}

しかしそれを発表するその他の名前とパラメータに"@この"しおり

public static void Print(this string @this)
{
   if(@this != null) Console.WriteLine(@this);
}

として3オプションは、好きな音で、"self"、"@この"ていなけます。私たちすべてに同意する 時には があり、意味のある名前のパラメータには、特定の目的は、より"自己"または"@ました。あさんというとき 常に ちな名前です。ことも有効です。

他のイディオムートさせる。何熟なたにとって、望ましいのは、なぜですか?

役に立ちましたか?

解決

っているがobjとvalを使います。ないような@ます。できるように働きかけるべきないものを使用するキーワードは、いまだかつてみたことがない自己がっていただいております。

他のヒント

私の名前でかなり正常に利用します。したがって、"ソース"のソースシーケンスのLINQオペレーター、または"引数"/"パラメータは"期間の延長を行うパラメータ引数チェック。

とは思わないのでは特に"こと"または"自己"というタイトル情報について 意味 のパラメータとします。確かにそれが最も重要なものです。

編集:場合もありませんの明白な意味でした。 一部の 意味 なし.どのような情報が与えられる"自己"または"@この"?でいるだけで最初のパラメータに拡張手法とその情報はすでに明らかなように、パラメータの装飾が施された this.例の場合 theStringToPrint/self オプションが指定され、今までの利用 outputText 代わりにで伝えるんだ、クリエイティブオフィスのパラメータには、と思う。

私の名前の変数を正確にどのよう名称でこれまでの平旧静的な方法です。その理由ということができ、そして静的な方法と考慮する必要がある場合にコードです。

最も簡単な方法を見てこの引数のバリデーションを実施します。を考慮する場合にはnullが渡された入方法。すべての引数をチェックして投げArgumentNullException.の場合は正しく実装される必要がありま入れる"この"としての引数の名前のようです。

public static void Print(this string @this) {
  if ( null == @this ) {
    throw new ArgumentNullException("this");
  }
  ...
}

現在人が符号化に対する図書館および突然が例外ダイアログには"これがnullの場合".その最も混乱:)

このスポーツは世界共通ルールなので、逆に、がん治療の拡張方法no異なる分野の古い静的な方法です。を見たいのですの理由です。

黒ざくろさん、難しい話で"ターゲット"の拡張手法を採用するパラメータとします。

私@こうしたことは回避すべきであるとしても使用でも無駄な言語の特徴から(@).あるいは実際のところなんでもできる混乱や減少し読みやすさなどのキーワードに現れていないキーワードは回避しなければならない。自己を思い出pythonのものによって生成されるための一貫した命名規則としてこれを参考にインスタンスの使用を必要としない一辺の統語trickery.

ができるようになっしんでみてはいかがでしょうか。

public static void Print(this string extended)
{
   if(extended != null) Console.WriteLine(extended);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top