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)
有人可以解释一下吗?
this指当前实例.在Main方法中,您将创建要传递Jim给构造函数的Person类的实例,然后将其存储在name字段中.接下来,您将调用该方法.在此方法中,你所创建的多个实例Person类:gupta,gupta1和gupta2.您需要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)