0

C# プロジェクトに Resharper を使用しています。

私はいくつかのプライベート グローバル変数を作成しました。通常、変数名の前に「this」キーワードを使用します (例: this.FirstName)。

Resharper は明らかに「this」の代わりにアンダースコアを使用することを望んでいますが、実際には「this」キーワードは冗長であると述べるほど大胆です。これについては MSDN サイトには言及されていません。私は、使用する命名規則 (_ または this. または大文字/小文字を使用) に関係なく、最終的にはユーザーの選択にかかっているという印象を受けました (MSDN サイトでさえ、少し混同しています (ただし、同じ内では決してありません))。クラス))。

彼らがこのようなことを聞​​いたことがあるかどうか、または主張が少しばかげているように見えるため、冗長なコメントがResharperの意見に過ぎないと感じているかどうかを明確にすることはできますか.

4

5 に答える 5

9

「冗長」とは不要という意味です。そのような場合、キーワードはコンパイラにとって明らかに必要ないため、ReSharper は正しいです。

文体に異議があるかどうかは別の問題です。ReSharper は、それらの使用を無視するように構成できると確信しています。

于 2012-10-08T13:18:22.883 に答える
5

他の回答はそれをよく説明していますが、追加することが1つthisあります。

public class User
{ 
    private string firstname;

    public User(string firstname)
    {
       this.firstname = firstname;
    }
}

thisここでは、同じ名前が付けられているため、参照しているものがわかるようにする必要があります。

それ以外は個人的な好みであり、ほとんどの場合冗長ですが、価値があると思われる場合は、Resharper の警告から削除できます。オプションのコード編集の下にあり、Stylecop プラグインを使用している場合はコードのクリーンアップ プロファイルにもあります。

于 2012-10-08T13:31:53.407 に答える
2

個人的に私は Resharper に同意し、私が使用するコーディング スタイルです。

public class Foo
{
    private readonly string _bar;
    public Foo(string bar)
    {
        _bar = bar;
    }
}

フィールドの前にthisキーワードを付けるかどうかは、もちろん個人の選択です。

于 2012-10-08T13:18:50.300 に答える
1

説明として、thisキーワードは、人間がコードを読み取るときに最も役立ちます。また、private アクセス修飾子も同様です。ただし、参照しているフィールドを認識しているため、厳密には必要ではありません。また、アクセス修飾子が指定されていない場合は、暗黙的がプライベートであることを認識しています。

于 2012-10-08T13:18:24.843 に答える
1

あなたの投稿を完全に誤解している場合はご容赦ください。しかし、それを読んだ後の私の最初の反応は、C# での「this」キーワードの使用について明確でない可能性があるということでした。クラスメンバー名に命名法を使用することと、キーワード「this」で暗示されるスコープ解決との間の区別があいまいになっているようです。

実行時には、「this」は常に現在のオブジェクト インスタンスを参照します。多くの開発者はアンダースコア プレフィックスを使用して、コーディング スタイルの問題としてクラス メンバー変数を示します。

于 2012-10-08T13:21:32.080 に答える