C# 类型分为两个基本类别:值类型(直接存储数据)和引用类型(存储对堆上数据的引用/指针)。它们在如何存储、复制和比较方面存在差异——这是影响整个语言行为的关键区别。
两个类别
text
Value types → struct, int, double, bool, char, enum, DateTime, decimal
Stored INLINE (stack for locals); copied BY VALUE.
Reference types → class, string, array, object, interface, delegate
Variable holds a REFERENCE to data on the heap; copied BY REFERENCE.
关键区别:复制语义
csharp
a = ;
b = a;
b = ;
Point { X; }
Point p1 = () { X = };
Point p2 = p1;
p2.X = ;
{ Value; }
Box box1 = () { Value = };
Box box2 = box1;
box2.Value = ;
