值类型(Value Types)
值类型直接包含数据,当声明一个值类型时,系统分配内存来存储值,例如:ini、char、float
引用类型(Reference Types)
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用(指的是一个内存位置)。
内置引用类型:
- Object
- Dynamic
- String
对象(Object)类型
对象(Object)类型 是 C# 通用类型系统中所有数据类型的终极基类。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。
当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。
Object obj;
obj = 100;//这是装箱
动态(Dynamic)类型
您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。
dynamic d = 30;
动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
字符串(String)类型
字符串(String)类型运行给变量分配任意字符串
String类型的值可以通过两种形式进行分配:引号和 @引号。
String str = "hello";
String str1 = @"hello";
字符串的前面可以加 @会将转义字符(\)当作普通字符对待
String str = @"C:\Windows";
//等价于
String str1 = "C:\\Windows";