e.g。
private string personName;
public Person(string name)
{
this.personName = name;
}
public override string ToString()
{
return this.personName;
}
}
答案 0 :(得分:2)
this
关键字允许您显式引用当前实例的成员。
在您的情况下,您可以轻松地将其关闭 - C#中的规则将找到成员变量。
但是,如果您使用与成员变量同名的参数,或者具有相同名称的本地参数,则使用this
指定要使用的变量。这允许你这样做:
private string personName;
public Person(string personName)
{
// this finds the member
// refers to the argument, since it's in a more local scope
this.personName = personName;
}
像StyleCop这样的工具强制在任何地方使用this
,因为它完全消除了任何歧义 - 你明确表示要在当前设置成员(或调用函数等)实例
答案 1 :(得分:2)
this
指的是该方法所属的对象。它可以用于 - 如在其他答案中所示 - 用于范围选择。当您想要将当前对象用作整个对象(即 - 不是特定字段,而是整个对象)时,也可以使用它 - 例如:
public class Person{
private string name;
private Person parent;
public Person(string name,Person parent=null;){
this.name = name;
this.parent = parent;
}
public Person createChild(string name){
return new Person(name,this);
}
}
答案 2 :(得分:0)
this
指的是该类的实例。通常你不会使用它,因为它会变成噪音,但在某些情况下使用它很重要。
public class Foo
{
private string bar;
public Foo(string bar)
{
//this.bar refer to the private member bar and you assign the parameter bar to it
this.bar = bar;
//Without the this, the bar variable in the inner scope bar, as in the parameter.¸
//in this case you are assigning the bar variable to itself
bar = bar;
}
}