ボクシングとアンボクシングを勉強していました。
私はこの例を経験しましたが、答えを理解できません。
誰か説明してくれませんか。
簡単な例を見ると、ボックス化とボックス化解除が何をするかはわかりますが、この例では少し混乱します。
ボックス化してからボックス化解除する例、トリッキーな例。
[struct|class] Point {
public int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
Point p = new Point(1, 1);
object o = p; p.x = 2;
Console.WriteLine(((Point)o).x);
私は答えを次のように読みました:
場合によります!Point が構造体の場合、出力は 1 ですが、Point がクラスの場合、出力は 2 です! ボックス化変換では、ボックス化された値のコピーが作成され、動作の違いが説明されます。
これは((point)o).x
ボクシングまたはアンボクシングですか?
理解できませんでした、誰か私に説明してください。
答えが 1 であることはわかっていますが、class の場合はどうすれば 2 でしょうか?