C#——内存、枚举、结构体
内存
值类型:struct 声明在哪就在哪
引用类型:string,class 在堆上
栈上的内容编译器自动回收,堆上的内容CLR回收。
String 和 StringBuilder 的区别:
StringBuilder可设置容量,String每个对象长度固定。
StringBuilder每次都在自身对象上操作,不生成新对象;String每次操作都生成一个新的对象。
结构体:Pascal命名法
struct Item{
//系统提供无参构造函数,不允许自定义无参构造,但可以自定义有参构造
//有参构造必须对所有字段赋值
//有参构造可以重载
}
与class的区别:
1.构造方法
2.声明字段时
赋值 属于 执行代码,执行代码要放在方法中执行,但是 类 赋值操作放在构造方法中执行
3.结构体是值类型,类是引用类型
4.结构体是隐式密封的,不可继承,只能继承接口