值类型与引用类型(高级)

💡 原文约200字/词,阅读约需1分钟。
📝

内容提要

在 C# 中,struct 是值类型,存储在栈中,赋值时复制值;class 是引用类型,存储在堆中,赋值时复制引用。在代码中,p1 和 p2 是独立的 Point 实例。修改 p2.X 为 30,不影响 p1.X,因此 p1.X 输出为 10。

🎯

关键要点

  • C# 中,struct 是值类型,存储在栈中,赋值时复制值。

  • class 是引用类型,存储在堆中,赋值时复制引用。

  • 在代码示例中,p1 和 p2 是独立的 Point 实例。

  • 修改 p2.X 为 30 不影响 p1.X,因此 p1.X 输出为 10。

延伸问答

C# 中值类型和引用类型有什么区别?

值类型(如 struct)存储在栈中,赋值时复制值;引用类型(如 class)存储在堆中,赋值时复制引用。

在 C# 中,struct 是如何工作的?

在 C# 中,struct 是值类型,存储在栈中,赋值时会复制其值。

C# 中 class 的特性是什么?

class 是引用类型,存储在堆中,赋值时只复制引用,而不是值。

在给定的代码中,p1 和 p2 是如何关联的?

p1 和 p2 是独立的 Point 实例,修改 p2 不会影响 p1。

如果修改 p2.X 为 30,p1.X 会有什么变化?

p1.X 的值仍然是 10,不会受到 p2.X 修改的影响。

C# 中如何判断一个类型是值类型还是引用类型?

可以通过查看类型的定义,struct 是值类型,class 是引用类型。

🏷️

标签

➡️

继续阅读