与C++一样,C# 也是一种强类型语言,其每个变量和对象也都必须具有被预先声明的类型。但是由于C# 是专门为.NET设计的语言,所以它的类型体系与C++有很大的不同,而与.NET框架一致。
C# 有如下两大类型种类:
(1)值类型——包括简单、枚举、结构和指针等类型。该类型的变量存储数据本身,对值类型的变量进行赋值时,会复制变量所包含的值。其中的指针类型,仅可用于unsafe(非安全)模式。
(2)引用类型——包括类、接口和数组等类型。该类型(也称为对象)的变量存储对实际数据的引用,对引用类型的变量进行赋值时,只复制对象的引用(指针/句柄),而不会复制对象本身。
值类型可以通过装箱(boxing)转换成引用类型,然后再经过拆箱(unboxing)转换回值类型。但是无法将原始的引用类型转换为值类型。
C# 不支持联合类型,也没有关键字union。