17/03/08 21:17:35.55 CceDL3fb0.net
>>934
まぁ有り体に言えばそうなんだけど、拡張メソッドとかthisとか、もはやこの際関係ないんだ
まず値型を考える。int i = 0;のとき、変数「i」は4バイトで値0という実体がそのまま入る
次に参照型、Myclass myclass = new Myclass();だと変数myclassには実体へのアドレスが入る
そこまでは理解していると思うけど、メソッドに渡された時、通常はどちらも値渡しなんだよ
値型だと内容が引数にコピーされるのは勿論、参照型も変数の中身=実体アドレスが渡されるだけ
なぜ参照型のメンバのみ元に反映されるか、それは実体アドレスを介した間接参照になって同じ場所を指すから
だけど参照型の引数自体に割り当てても、それは引数が指すものが変わるだけで、元のmyclassが指す場所は変わらない
refやoutで(実体もしくは実体アドレスではなく)変数のアドレスが渡されることで初めて呼び出し元の変数自体を変えられる