值类型与引用类型(高级)
原文约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 是引用类型。
🏷️