gpt4 book ai didi

c# - 无法理解拳击是如何完成的

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:08 25 4
gpt4 key购买 nike

我正在研究装箱和拆箱。

我看过这个例子,我无法理解答案。

谁能给我解释一下

通过看一个简单的例子,我现在知道装箱和拆箱的作用了,但是这个例子有点让人困惑。

一个装箱然后拆箱的例子,一个棘手的例子。

[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?

最佳答案

我不知道为什么每个人都在写一篇文章,解释起来很简单:

  • 当您将 struct 转换为 object 时,它会被复制到一个新的 object 中。

  • 当您将一个对象转换为一个结构时,它会被复制到一个新的结构中.

  • 当您在之间转换时,对象的内容不会被复制;仅复制引用

希望对您有所帮助。

关于c# - 无法理解拳击是如何完成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com