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

在构造函数中:

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

在其他地方

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

当前回答

“这。'帮助查找'this'类中有很多成员的成员(通常是由于深度继承链)。

按CTRL+空格键并没有帮助,因为它还包括类型;而这。’只包括会员。

一旦我得到我想要的东西,我通常会删除它:但这只是我风格的突破。

在风格方面,如果你是一个独行侠——你决定;如果你在一家公司工作,坚持公司的政策(看看源代码控制中的东西,看看其他人在做什么)。就用它来评定成员资格而言,既不正确也不错误。唯一错误的就是前后矛盾——这是风格的黄金法则。别挑剔别人。把时间花在思考真正的编码问题上——当然还有编码。

其他回答

下面是我使用它的时候:

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

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

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

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

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

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

我倾向于用_来强调字段,所以真的不需要使用这个。r#也倾向于将它们重构掉……

这个关键字在c#中有几种用法。

限定由相似名称隐藏的成员 将对象本身作为参数传递给其他方法 使对象从方法中返回自身 声明索引器 声明扩展方法 在构造函数之间传递参数 在内部重新分配值类型(struct)值。 在当前实例上调用扩展方法 转换为另一种类型 到同一类中定义的链构造函数

可以通过在作用域中不使用相同名称的成员变量和局部变量来避免第一种用法,例如通过遵循通用命名约定并使用属性(Pascal大小写)而不是字段(驼峰大小写)来避免与局部变量冲突(也是驼峰大小写)。在c# 3.0中,可以使用自动实现的属性轻松地将字段转换为属性。