4

私は「これ」を使っています。プレフィックスは約 2 年間 (StyleCop SA1102 ルール)。しかし今、私は考えを変えて、静的およびインスタンスのプライベート フィールドに「アンダースコア」プレフィックスを使用し、「これ」を削除しています。プレフィックス。

これが「これ」から切り替える理由です。「下線」に:

  1. 簡単に壊れる:チームの誰も「これ」を常に使用しません。プレフィックスなので、このスタイルに従ったプロジェクトを見ると、「これ」は表示されません。すべてのインスタンス メンバーのプレフィックス。
  2. 役に立たない区別:インスタンス フィールドと静的フィールドを区別する利点は何ですか? それによって何かを得たことはありますか?
  3. ノイズ :気をつけて「これ」を使えば。プレフィックス、どこにでも「this」が表示されます。たとえば、クラスには 77 回の「this」キーワードがありましたが、スタイルを変更した後は 9 つのアンダースコアしかなく、コードはより読みやすくなっていると思います (コード ロジックを簡単にたどることができます)。
  4. Razor : 「これ」を使うのは醜いようです。Razor C# コードのプレフィックス。たとえば、「@Html.Something」の代わりに「@this.Html.Something」が表示されます。そして、あらゆる場所のすべての C# コードに適用する一般的なルールが気に入っています。

あなたの考えは?

StyleCop SA1102 ルール ("this." プレフィックス) を無視し、"アンダースコア" プレフィックスを使用してクラス フィールドを区別することは合理的ですか?

4

2 に答える 2

8

すべてのポイントはアンダースコアにも適用されます (強制する必要がある、あまり役に立たないなど)。77 'this' を 9 _ に変更した場合、9 'this' を使用することもできます。私は確信しています。

これがインスタンスなのか静的フィールド/プロパティなのかを知ることは、非常に便利です。マルチスレッド環境で。

しかし、「これ」を見ると、それが何を意味するのか正確にわかります。アンダースコア付き..推測できますが、この時点では、どれだけ一貫しているかに大きく依存します。

個人的には、ローカル変数とクラス プロパティを区別するためだけに (常にではありませんが) 'this' をよく使用します。メソッドが長い場合。

結局のところ、これは推奨事項にすぎません。あなたとあなたのチームがアンダースコアに満足している場合は、アンダースコアを使用してください。

于 2012-05-25T16:25:16.503 に答える