我很好奇其他人是如何使用这个关键字的。我倾向于在构造函数中使用它,但我也可能在整个类的其他方法中使用它。一些例子:

在构造函数中:

public Light(Vector v)
{
    this.dir = new Vector(v);
}

在其他地方

public void SomeMethod()
{
    Vector vec = new Vector();
    double d = (vec * vec) - (this.radius * this.radius);
}

当前回答

我只在需要的时候使用它,除了对称操作,由于单参数多态性不得不把它放在一边的方法中:

boolean sameValue (SomeNum other) {
   return this.importantValue == other.importantValue;
} 

其他回答

我基本上只在从同一类型中引用一个类型属性时使用这个。正如另一个用户提到的,我还强调了本地字段,这样它们就不需要这样做了。

当你有很多开发人员在同一个代码库上工作时,你需要一些代码指南/规则。在我工作的地方,我们决定在字段、属性和事件上使用“this”。

对我来说,这样做很有意义,当你区分类变量和方法变量时,它使代码更容易阅读。

下面是我使用它的时候:

从类内部访问私有方法(以区分) 将当前对象传递给另一个方法(或在发生事件时作为发送者对象) 创建扩展方法时:D

我没有对私有字段使用这个,因为我用下划线(_)作为私有字段变量名的前缀。

在Jakub Šturc的回答中,他关于在构造器之间传递数据的第5条可能需要一些解释。这是在重载构造函数中,并且是强制使用This的一种情况。在下面的例子中,我们可以使用默认形参从无参数构造函数调用参数化构造函数。

class MyClass {
    private int _x
    public MyClass() : this(5) {}
    public MyClass(int v) { _x = v;}
}

我发现有时候这是一个特别有用的功能。

这取决于我所遵循的编码标准。如果我们用_来表示一个实例变量,那么“this”就多余了。如果我们不使用_,那么我倾向于使用这个来表示实例变量。