概念: 自定义变量类型 类似枚举 ==数据和函数的集合== 是[[值类型和引用类型|引用类型]] 通常用法: 解决复杂类型数据的存储 写namespace层级中 语法: 关键字struct 必须有变量 构造函数(可选) 函数(可选) 案例: ```Csharp struct Student { int age; bool sex; int number; string name; void speak(){} } ``` 注意: 可以声明变量和方法、构造方法 甚至可以声明别的结构体,但是不能用自己声明自己 ==不能在结构体内初直接给成员初始化== ==和static class相反!!!== ==`struct` 本身就是[[值类型和引用类型|值类型]]、可实例化、可复制、可栈上分配== ==`static class` 的设计目的:**只装静态成员,不能实例化**== ==邪修:== `static class`:纯工具类,不能 new `struct`:值类型,必须能 new、复制、栈分配 → 不支持 static struct 内部不能直接给字段赋值 → 为了效率,无隐式初始化 #基础