私がこのコードを持っているとき:
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でそのインスタンスへの参照を作成しましたか?
xをbに変更すると、Xもaに変更されますか?なんで?そうでない場合、aのコピーを作成し、それをbに挿入する適切な方法は何ですか?
なぜ文字列と同じものが常にコピーを作成するのでしょうか?等しい演算子は文字列でオーバーライドされますか?
string a = "hello";
string b = a;
b = "world";
// "hello world"
Console.WriteLine( a + " " + b );