1

thisコードのプロパティに-keywordを使用する必要があるのはいつですか?

public class MyClass {
    public string MyString { get; private set; }
    public void MyMethod() {
        OtherClass.DoStuff(MyString); // Or this.MyString?
    }
}

プロパティのタイプ名前が同じである場合、それを機能させるために使用する必要this.あることを私は知っています。

public string Emailer Emailer { get { return _emailer; } }

クラスのプロパティやメソッドでさえ使用this.するためのガイドラインは何ですか?コンパイルされたコードに違いはないことを私は知っています。それはすべて...息を止めて...ベストプラクティスです。

4

3 に答える 3

4

あなたとあなたのチームが最も読みやすいと思うことは何でもしてください。一部の人々は明示的にするのが好きです。this私は実際にいつしなければならないかだけを指定します。コンパイルされたコードに違いはありません。

于 2010-08-25T09:05:23.603 に答える
3

パラメータ名とインスタンスメンバーの名前が同じ場合は、を使用する必要がありますthis

好き:

public class MyClass
{
    private string something;

    public void SomeMethod (string something)
    {
        this.something = something;
    }
}

ただし、使用する必要がないような方法で名前を選択することをお勧めしますthis。そうしないと、問題が発生するだけです。遅かれ早かれ、thisどこかを忘れて、コードのデバッグに苦労するでしょう。

于 2010-08-25T09:06:29.570 に答える
1

使用するかどうかthisは主に好みの問題であり、したがって正しい答えも間違った答えもありません。開発者とはいえ、それは少し宗教戦争になる可能性があります。チームで何らかの形で合意に達し、後でStyleCopを使用して決定を実施するのが最善だと思うことがよくあります。

個人的には簡潔さを好み、this実際に必要な場合にのみ使用します。ただし、これはかなり小さな問題であるため、ここでは個人的な好みよりもコードベースの一貫性を選択します。

明示的に必要な場合がいくつかあります。これに関する拡張メソッドと、場合によっては識別子を明確にするための拡張メソッドが思い浮かびます。しかし、これらはかなりまれだと思います。

于 2010-08-25T09:08:35.843 に答える