值类型表示实际的数据,存储在堆栈中。将一个值类型变量赋给另一个值类型变量时,将复制包含的值,对其中一个变量操作时,不影响其他变量。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类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。