这指的是当前的对象.但无法理解以下行为

Moh*_*eem 2 c# this

class Person
{
    string name;

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

    public void method()
    {
        Person gupta = new Person("James"); // Current Object
        Console.WriteLine(this.name);
        Person gupta1 = new Person("Peter");  // Current Object
        Console.WriteLine(this.name);
        Person gupta2 = new Person("Frank");  // Current Object
        Console.WriteLine(this.name);
    }

    static void Main(string[] args)
    {
        Person p = new Person("Jim");
        p.method();
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码产生了结果

Jim
Jim
Jim
Run Code Online (Sandbox Code Playgroud)

但是,如果认为这应该是

James
Peter
Frank
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

Dar*_*rov 7

this指当前实例.在Main方法中,您将创建要传递Jim给构造函数的Person类的实例,然后将其存储在name字段中.接下来,您将调用该方法.在此方法中,你所创建的多个实例Person类:gupta,gupta1gupta2.您需要name在每个实例上调用该字段:

public void method()
{
    Person gupta = new Person("James");
    Console.WriteLine(gupta.name);
    Person gupta1 = new Person("Peter");
    Console.WriteLine(gupta1.name);
    Person gupta2 = new Person("Frank");
    Console.WriteLine(gupta2.name);
}
Run Code Online (Sandbox Code Playgroud)