存储在栈里
基于值类型的变量直接包罗值(值类型存储实际值)。 将一个值类型变量赋给另一个值类型变量时,将复制包罗的值。 这与引用类型变量的赋值差别,引用类型变量的赋值只复制对东西的引用,而不复制东西自己。
所有的值类型均隐式派生自 System.ValueType。
与引用类型差别,不能从值类型派生出新的类型。 但与引用类型不异的是,布局也可以实现接口。
与引用类型差别,值类型无法包罗 null 值。 但是,可以为 null 的类型 成果允许值类型分配给 null。
每种值类型均有一个隐式的默认结构函数来初始化该类型的默认值。
值类型分为两类: struct( 布局 )、 enum(枚举 )
struct( 布局 )分为以下几类:
Numeric(数值)类型
整型
浮点型
decimal
bool
用户界说的布局。
下表列出了 C# 中内置类型中可用的值类型:
类型描述范畴默认值bool 布尔值 True 或 False False
byte 8 位无标记整数 0 到 255 0
char 16 位 Unicode 字符 U +0000 到 U +ffff ‘\0‘
decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M
double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F
int 32 位有标记整数类型 -2,147,483,648 到 2,147,483,647 0
long 64 位有标记整数类型 -923,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
sbyte 8 位有标记整数类型 -128 到 127 0
short 16 位有标记整数类型 -32,768 到 32,767 0
uint 32 位无标记整数类型 0 到 4,294,967,295 0
ulong 64 位无标记整数类型 0 到 18,446,744,073,709,551,615 0
ushort 16 位无标记整数类型 0 到 65,535 0
实际上是简单类型,所有的简单类型(C# 语言的构成部分)均为 .NET Framework 系统类型的别号。 例如,int 是 System.Int32 的别号。可使用文字初始化简单类型。 例如,“A”是 char 类型的文字,而 2001 是 int 类型的文字。如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 要领。表达式 sizeof(type) 孕育产生以字节为单位存储东西或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸: