值类型均隐式派生自 System.ValueType
数值类型、bool、结构、枚举
引用类型派生自 System.Object
字符串、数组、类、接口等
引用类型变量的赋值只复制对对象的引用
值类型变量赋值会拷贝一个副本
常用类库string
字符串不可变性,字符串的“暂存池”两个特性
String字符串,字符串可以看成字符数组,不可变性
StringBuilder
StringBuilder高效的字符串操作
当进行大量的字符串操作的时候,比如,很多次的字符串拼接操作。
String 对象是不可变得。每次使用 System.String 类中的一个方法时,都要在内存中创建一个新的字符串对象,这就需要为该对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常大。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuiler 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
StringBuilder 仅仅是拼接字符串的工具,大多数情况下还需要把 StringBuilder 对象转换为 String
StringBuilder 的方法:
Append();//追加字符串
ToString();//把 StringBuilder 转换为字符串
Insert();
Replace();
ref与out
- 使用 ref 形参数时,传入的参数必须先被初始化。对于 out 而言,必须在方法中对其完成初始化。
- 使用 ref 和 out 是,在方法的参数和执行方法时,都要加 ref 或 out 关键字。以满足匹配。
- out 适合用在需要 return 多个返回值的地方,而 ref 则用在需要被调用的方法修改调用者的引用的时候
ref 可进可出,但是在进入前必须有初始值
out 只出不进(可以进),在方法中必须赋初值