类型可描述为:
- 内置数值类型(如 int 或 char),或 (这是系统定义类型)
- 用户定义类型(如 class 或 interface)。(class是类,interface接口,后面的文章将会描述)
- 匿名类型,它由一组封装在无名称引用类型中的公共属性组成。
- 类型还可以定义为:
- 值类型(C# 参考)(用于存储值)。这些类型包括基元数值类型、枚举和结构,还包括这几种类型的可以为 null 的版本。
- 引用类型(C# 参考)(用于存储对实际数据的引用)。这些类型包括类、接口、数组和委托。
强制转换
数据类型之间的转换可以使用强制转换显式进行,但在某些情况下,也允许隐式转换。例如
static void
TestCasting()
{
int i = 10;
float f = 0;
f = i;
f = 0.5F;
i = (int)f; //
这样的转换会有数据丢失。
}
装箱和取消装箱
装箱和取消装箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object
引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中。取消装箱将从对象中提取值类型。在此示例中,整型变量 i 被“装箱”并赋值给对象 o
int i = 123;
object o = (object)i; // 装箱
o = 123;
i = (int)o; // 取消装箱
上面有说到
值类型主要由两类组成:
结构分为以下几类:
-
Numeric(数值)类型
-
用户定义的结构。