gpt4 book ai didi

C#引用题

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:45 25 4
gpt4 key购买 nike

为什么 b.b 不会像 f.f 那样变成“a2”?

谢谢。

public class Test
{
public static void Main()
{
Foo f = new Foo
{
f = getStr()
};

Boo b = new Boo
{
b = f.f
};


f.f = "a2";

Console.WriteLine(f.f);
Console.WriteLine(b.b);
}

public static string getStr()
{
string a = "a1";
return a;
}
}

public class Foo
{
public string f { get; set; }
}

public class Boo
{
public string b { get; set; }
}

最佳答案

下面是一段更简单的代码,展示了我认为您期望看到的内容:

string x = "hello";
string y = x;
x = "there";

此时您似乎期望 y “那里”。但是 xy 是完全独立的变量——第二个赋值只是复制了 x 的值(对字符串“hello”的引用) ) 到 y。第三行将一个不同的值分配给x(对字符串“there”的引用)——它不会改变y的值,它仍然是字符串“hello”的引用。

您的示例更加复杂,因为它使用具有自动实现属性的单独类型 - 但基本概念是相同的。

关于C#引用题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6042348/

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