C#——内存、枚举、结构体

内存

值类型:struct    声明在哪就在哪

引用类型:string,class  在堆上

 栈上的内容编译器自动回收,堆上的内容CLR回收。

String 和 StringBuilder 的区别:

StringBuilder可设置容量,String每个对象长度固定。

StringBuilder每次都在自身对象上操作,不生成新对象;String每次操作都生成一个新的对象。

结构体:Pascal命名法

struct Item{

  //系统提供无参构造函数,不允许自定义无参构造,但可以自定义有参构造

  //有参构造必须对所有字段赋值

  //有参构造可以重载

}

与class的区别:

1.构造方法

2.声明字段时

  赋值 属于 执行代码,执行代码要放在方法中执行,但是 类 赋值操作放在构造方法中执行

3.结构体是值类型,类是引用类型

4.结构体是隐式密封的,不可继承,只能继承接口

原文地址:https://www.cnblogs.com/tomatokely/p/15193827.html