变量分为值类型、引用类型和指针类型
值类型
- 从类 System.ValueType 中派生的。
- 值类型变量可以直接分配给一个值。当声明一个 int 类型时,系统分配内存来存储值。
引用类型
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。换句话说,它们指的是一个内存位置。
分类:object、dynamic 和 string
对象(Object)类型
对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。
当一个值类型转换为对象类型时,则被称为装箱;另一方面,当一个对象类型转换为值类型时,则被称为拆箱。
int i = 123; // 值类型
object o = i; // 装箱
int j = (int)o; // 拆箱
动态(Dynamic)类型
可以存储任何类型的值在动态数据类型变量中。
dynamic <variable_name> = value; //声明动态类型
dynamic d = 20; //例子
字符串(String)类型
允许给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。
指针类型
指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。
//声明指针
type* identifier;
//定义指针
char* cptr;
int* iptr;