-3

多年来,我一直在试图弄清楚“this”在 c#.net 中的作用

例如

private string personName;

public Person(string name)
{
  this.personName = name;
}

public override string ToString()
{
  return this.personName;
}

}

4

3 回答 3

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);
    }
}
于 2013-10-31T00:00:47.110 回答
2

关键字允许您显式引用当前实例的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任何地方,因为它完全消除了任何歧义 - 您明确表示要在当前实例中设置成员(或调用函数等)。

于 2013-10-30T23:55:29.773 回答
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;
    }
}
于 2013-10-30T23:56:47.923 回答