2011-02-08 9 views
3

可能性の重複:
When do you use the “this” keyword?C# "this" overuse?

私は私の最初のC#のコードの一部を書いている、と私はthis.foo異なるローカル名fooがある場合this.fooが必要なだけであることに気付きます。私はこれまでのところ、thisを使用しているかどうかに関して矛盾しています。

thisを使用することをお勧めしますか、必要な場合はthisを使用するのが好ましいですか?

+20

聖戦を入力..... –

+0

これは何度か尋ねられました:http://www.google.com/search?q=c%23+this%20site:stackoverflow.com#sclient=psy&hl= &aq =&aql =&oq =&pbx = 1&fp = 5b2df7f8ff10eaf9 –

+0

スタイルのことです。自分で作業している場合は、何でもしてください。あなたがチームの一員であれば、確立された慣行に従ってください。 –

答えて

5

私は必要な場合にのみthisを使用します。ほとんどの場合、ローカル変数とクラス変数を区別する必要はないので、必要性が出てくるまで気にしないでください。

0

それはあなたの好みに完全に基づいています。私は個人的には、それがクラス変数であることを強調するために常にそれを使用したいのですが、それは私だけです。

1

Visual StudioのIntellisenseを使用できるため、「this」と入力します。私は、オブジェクトプロパティまたはメソッドへの参照のたびに「this」を使用することに意味のある文体的異論があるとは思わない。

+5

Ctrl + Spaceを押すと、Intellisenseを使うことができますか? –

0

私は自分の意図を明確にしたいときはthisを使用します。

しかし、一般に、問題のメンバーにマウスを置くと、Visual Studio IDEによってメンバーが(ポップアップで)明示されます。これにより、thisの必要性が軽減されます。

Adamが指摘するように、thisと入力すると、Intellisenseリスト全体を提供する代わりに、まずローカルメンバーのみがIntellisenseになります。

1

これは実際にはスタイルの問題です。 thisいつもローカルのメソッドの代わりにメンバ変数にアクセスしているときに、同じ目的のためにその名前に疣贅を使用する人もいれば、どちらも使用しない人もいます。

にもかかわらず、メンバ変数の場合と同じ名前をローカルメソッドに使用することはおそらく悪い考えです。コンストラクタや他の初期化ルーチンでこれらのメンバを設定するのが正当だと思う唯一の時間です。

0

だけ多くの「プロこの」答え...

私はthisを使用することはほとんどないとは対照的な答えを与えるために。私はすべてのメンバ変数の先頭にアンダースコアを付けるので、ローカル変数とメンバ変数を簡単に区別することができます。私はいつもthisを使用してコードが汚染されていることがわかり、はるかに騒々しいものになります。

+3

メンバー変数に奇妙な接頭辞が追加されていると、実際にコードが汚染されていて、もっと騒々しいものになります... –

+0

さらに、パブリックメンバー変数にアンダースコアを前置すると、多くのPython(またはJavaScript)かなり混乱している。 :P –

+0

"m_"のような接頭辞は飲み込むのが難しいと思いますが、単純なアンダースコア接頭辞が気に散らないように見えます(とにかく "this。そして、あなたはC#でパブリックメンバー変数を持つことは絶対にありません(私の本の主要な赤旗です。 JS、Pythonなどでは、さまざまな言語がさまざまなスタイルを必要とします。 –

関連する問題