可能性の重複:
When do you use the “this” keyword?C# "this" overuse?
私は私の最初のC#のコードの一部を書いている、と私はthis.foo
異なるローカル名foo
がある場合this.foo
が必要なだけであることに気付きます。私はこれまでのところ、this
を使用しているかどうかに関して矛盾しています。
this
を使用することをお勧めしますか、必要な場合はthis
を使用するのが好ましいですか?
可能性の重複:
When do you use the “this” keyword?C# "this" overuse?
私は私の最初のC#のコードの一部を書いている、と私はthis.foo
異なるローカル名foo
がある場合this.foo
が必要なだけであることに気付きます。私はこれまでのところ、this
を使用しているかどうかに関して矛盾しています。
this
を使用することをお勧めしますか、必要な場合はthis
を使用するのが好ましいですか?
私は必要な場合にのみthis
を使用します。ほとんどの場合、ローカル変数とクラス変数を区別する必要はないので、必要性が出てくるまで気にしないでください。
私は明快さのためにそれを好む。しかし、私たちがStyleCopのルールに従っているから(ほとんどすべて:))。
Why does StyleCop recommend prefixing method or property calls with "this"?
それはあなたの好みに完全に基づいています。私は個人的には、それがクラス変数であることを強調するために常にそれを使用したいのですが、それは私だけです。
Visual StudioのIntellisenseを使用できるため、「this」と入力します。私は、オブジェクトプロパティまたはメソッドへの参照のたびに「this」を使用することに意味のある文体的異論があるとは思わない。
Ctrl + Spaceを押すと、Intellisenseを使うことができますか? –
私は自分の意図を明確にしたいときはthis
を使用します。
しかし、一般に、問題のメンバーにマウスを置くと、Visual Studio IDEによってメンバーが(ポップアップで)明示されます。これにより、this
の必要性が軽減されます。
Adamが指摘するように、this
と入力すると、Intellisenseリスト全体を提供する代わりに、まずローカルメンバーのみがIntellisenseになります。
これは実際にはスタイルの問題です。 this
いつもローカルのメソッドの代わりにメンバ変数にアクセスしているときに、同じ目的のためにその名前に疣贅を使用する人もいれば、どちらも使用しない人もいます。
にもかかわらず、メンバ変数の場合と同じ名前をローカルメソッドに使用することはおそらく悪い考えです。コンストラクタや他の初期化ルーチンでこれらのメンバを設定するのが正当だと思う唯一の時間です。
だけ多くの「プロこの」答え...
私はthis
を使用することはほとんどないとは対照的な答えを与えるために。私はすべてのメンバ変数の先頭にアンダースコアを付けるので、ローカル変数とメンバ変数を簡単に区別することができます。私はいつもthis
を使用してコードが汚染されていることがわかり、はるかに騒々しいものになります。
メンバー変数に奇妙な接頭辞が追加されていると、実際にコードが汚染されていて、もっと騒々しいものになります... –
さらに、パブリックメンバー変数にアンダースコアを前置すると、多くのPython(またはJavaScript)かなり混乱している。 :P –
"m_"のような接頭辞は飲み込むのが難しいと思いますが、単純なアンダースコア接頭辞が気に散らないように見えます(とにかく "this。そして、あなたはC#でパブリックメンバー変数を持つことは絶対にありません(私の本の主要な赤旗です。 JS、Pythonなどでは、さまざまな言語がさまざまなスタイルを必要とします。 –
聖戦を入力..... –
これは何度か尋ねられました:http://www.google.com/search?q=c%23+this%20site:stackoverflow.com#sclient=psy&hl= &aq =&aql =&oq =&pbx = 1&fp = 5b2df7f8ff10eaf9 –
スタイルのことです。自分で作業している場合は、何でもしてください。あなたがチームの一員であれば、確立された慣行に従ってください。 –