gpt4 book ai didi

c# - this 指的是当前对象。但无法理解以下行为

转载 作者:行者123 更新时间:2023-11-30 18:50:42 25 4
gpt4 key购买 nike

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();
}
}

这段代码产生了结果

Jim
Jim
Jim

然而如果认为这应该是

James
Peter
Frank

有人可以解释一下吗?

最佳答案

this 引用当前实例。在 Main 方法中创建 Person 类的实例时,您将 Jim 传递给构造函数,然后将其存储在 name 字段中。接下来调用该方法。在此方法中,您将创建 Person 类的多个实例:guptagupta1gupta2。您需要在每个实例上调用 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);
}

关于c# - this 指的是当前对象。但无法理解以下行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com