第十九式:C# 结构体 (轻功身法)

绝世
秘籍
冲儿,有时候我们只需要一个小巧的容器来装几个数据(比如坐标 x, y),如果非要造一个庞大的“类”门派,未免杀鸡用牛刀。
这时候,结构体 (Struct) 就是最好的选择。
它和类(Class)有什么区别?

1. 结构体 vs 类 - 轻功 vs 内功

特性 结构体 (Struct) 类 (Class)
存储位置 栈 (Stack) - 值类型 堆 (Heap) - 引用类型
重量 轻量级,快速 重量级,功能多
继承 不能继承 可以继承

2. 定义结构体 - 简易行囊


struct Point
{
    public int X;
    public int Y;

    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
}
        
因为结构体是值类型,当你把一个结构体变量赋值给另一个时,它是完全复制一份新的!
修改新的,旧的不变。这和类(引用传递)完全不同,千万别搞混了!
📦

动手时刻:分身术

验证结构体的值传递特性:

  1. 创建一个 Point p1 = new Point(10, 10);
  2. 赋值给 p2: Point p2 = p1;
  3. 修改 p2 的 X: p2.X = 20;
  4. 输出 p1.X,看看它是 10 还是 20?
查看参考答案

输出:10

因为 p2 是 p1 的复印件,修改复印件不会影响原件。


成就解锁:【轻功水上漂】 获得:神行百变秘籍