多年来,我一直在试图弄清楚“this”在 c#.net 中的作用
例如
private string personName;
public Person(string name)
{
this.personName = name;
}
public override string ToString()
{
return this.personName;
}
}
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);
}
}
关键字允许您显式引用当前实例的this
成员。
在您的情况下,您可以轻松地将其关闭 - C# 中的规则将找到成员变量。
但是,如果您使用与成员变量同名的参数,或者具有同名的局部变量,则 usingthis
指定要使用的变量。这允许您执行以下操作:
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
任何地方,因为它完全消除了任何歧义 - 您明确表示要在当前实例中设置成员(或调用函数等)。
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;
}
}