class C
{
int a;
int c=10;
void F(C c1)
{
c1.a = 30;
c1 = null;
}
public static void Main(string[]args)
{
C c1 = new C();
c1.a = 10;
c1.F(c1);
Console.WriteLine(c1.a);
Console.WriteLine(c1);
}
}
質問する
51 次
3 に答える
0
何が起こっているかを示すために、パラメーターの名前を「arrgghhh」に変更しました。両方に同じ名前を付けましたが、同じ変数にはなりません。どちらも同じオブジェクトを指していますが、arrrgghh を null にすると、c1 は null になりません。c1 は、arrrgghh がもはやオブジェクトを指していなくても、まだオブジェクトを指しています。
class C
{
int a;
int c=10;
void F(C arrrgghhh)
{
arrrgghhh.a = 30;
arrrgghhh = null;
}
public static void Main(string[]args)
{
C c1 = new C();
c1.a = 10;
c1.F(c1);
Console.WriteLine(c1.a);
Console.WriteLine(c1);
}
}
于 2013-10-24T08:57:30.897 に答える