垃圾回收器(Garbage Collector,简称 GC)是 .NET CLR(公共语言运行时)中的一项重要机制,用于自动管理内存。其主要职责:
string
在 C# 中本质是 引用类型,但由于其 不可变性(Immutable),它表现出类似 值类型 的行为。
在 C# 中,结构体(struct) 和 类(class) 都可以用来定义数据结构,但它们在内存分配、继承、可变性等方面存在明显区别。
区别点 | 结构体(struct) | 类(class) |
---|---|---|
类型 | 值类型(Value Type) | 引用类型(Reference Type) |
内存分配 | 分配在**栈(Stack)**上(如果是局部变量) | 分配在**堆(Heap)**上(使用 new 创建) |
默认访问修饰符 | public ,结构体成员不能声明为Protected | private |
赋值方式 | 值拷贝(赋值时创建副本) | 引用拷贝(赋值时复制引用,多个引用指向同一对象) |
继承 | 不支持继承(不能被其他 struct 继承) | 支持继承(可以继承自其他 class ) |
接口 | 可以实现接口 | 可以实现接口 |
构造函数 | 不能显式的定义无参构造函数 | 可以定义无参构造函数 |
析构函数 | 不支持析构函数 | 支持析构函数(由 GC 管理,~ClassName() ) |
适用场景 | 小型数据对象(如 Vector3 、Color ) | 复杂对象、需要共享引用的对象 |