### 值类型

值类型表示实际的数据，存储在堆栈中。将一个值类型变量赋给另一个值类型变量时，将复制包含的值，对其中一个变量操作时，不影响其他变量。C#中的多数基本类型都是值类型。值类型包括：简单类型、枚举类型和结构类型。值类型结构如图 1 所示。

图 1 值类型结构图

简单类型主要包括数值（Numeric）类型和布尔（Bool）类型，表 1 说明了简单数据类型。

表 1 简单类型说明表

类别 | 位数 | 类型 | 范围/精度
有符号整型 | 8 | sbyte | -128~127
16 | byte | -32,768~32,767
32 | int | -2,147,483,648~2,147,483,647
64 | long | -9,223,372,036,854,775,808~9,223,372,036,854,775,807
无符号整型 | 8 | byte | 0~255
16 | ushort | 0~65,536
32 | uint | 0~4,294,967,295
64 | unlong | 0~18,446,744,073,709,551,615
浮点 | 32 | float | ±1.5e−45 到 ±3.4e38
64 | double | ±5.0e−324~±1.7e308
Decimal | 128 | decimal | ±1.0 × 10e−28~±7.9 × 10e28
Unicode 字符 | 16 | char | U+0000~U+ffff
布尔值 |  | bool | true/false

注意：decimal 类型具有更高的精度和更小的范围，这使它适合于财务和货币计算。