当我有这个代码时:
class A
{
public int X = 0;
...
}
public void Function()
{
// here I create a new instance of class
A a = new A();
a.X = 10;
// here I create a pointer to null
A b = null;
// here I assign a to b
b = a;
b.X = 20;
}
我现在是否传递了对 A 类实例的引用?或者我将 A 的实例克隆到新实例并在 b 中创建了对它的引用?
改变 b 中的 X 是否也改变 a 中的 X?为什么?如果不是,那么创建 a 的副本并将其插入 b 的正确方法是什么?
为什么相同的字符串总是会创建一个副本?字符串中的相等运算符是否被覆盖?
string a = "hello";
string b = a;
b = "world";
// "hello world"
Console.WriteLine( a + " " + b );