値型をボックスに入れて暗黙的に変換したいと思います。残念ながら、それは参照型のように動作停止になりそうすなわちボクシングと暗黙の変換を使用して、値型を参照型のように動作させる
MyTnt i1 = 3; //MyValue has a field value = 3
MyInt i2 = 5; //value = 5
i1 = i2; //both i1 and i2 = 5
i2 = 4; //i1 = 5, i2 = 4; should be i1 = i2 = 4;
それは予想通り、それはここに振る舞うので、暗黙の型変換を使用してボクシングを書くことは可能ですか?
リファレンスタイプはあなたの例と同じように振る舞います。 – Lee
MyIntはintのラッパーであり、暗黙的な変換を行います。私はちょうど私が上に書いたことをかなりテストした、そして私はあなたに言うことができる、それは私がそれがそれらの期待されたと言ったように振る舞いません。 – wjtk4444
あなたの期待は間違っています。構造体上のラッパーであることとは関係のないクラスを書く。上記と同様のコードを書いてください。同じように動作します。 'i1 = i2; 'と書くことは、これらの変数を恒久的にリンクしているわけではありません。起こっている唯一の事は、時間の経過とともに、これらの変数が同じオブジェクトを参照することです。異なる値をi2に割り当てることは現実を変え、i1とは何も関係がありません。 –