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 回答