一、C#类型和变量
C#有两种类型,引用类型和值类型。值类型的变量直接包含数据,引用类型的变量则存储对数据(称为“对象”)引用。借助引用类型,两个变量可以引用同一个对象,对一个变量执行运算可能会影响对另一个变量的引用的对象。借助值类型,每个变量都有自己的数据副本,因此,对一个变量执行的运算不会影响另一个变量。
C#类型系统如下
- 引用类型
- 类类型
其他所有类型的最终基类:object
Unicode 字符串:string
格式为 class C {…} 的用户定义类型 - 接口类型
格式为 interface I {…} 的用户定义类型 - 数组类型
一维和多维,例如 int[] 和 int[,] - 委托类型
格式为 delegate int D(…) 的用户定义类型
- 类类型
- 值类型
- 简单类型
有符号的整型:sbyte、short、int、long
无符号的整型:byte、ushort、uint、ulong
Unicode 字符:char
IEEE 浮点:float、double
高精度小数:decimal
布尔:bool - 枚举类型
格式为 enum E {…} 的用户定义类型 - 结构类型
格式为 struct S {…} 的用户定义类型 - 可以为 null 的值类型
值为 null 的其他所有值类型的扩展
- 简单类型
1.八个整型类型支持带符号或不带符号格式的 8 位、16 位、32 位和 64 位值。
2.两个浮点类型(float 和 double)分别使用 32 位单精度和 64 位双精度 IEC-60559 格式表示。
3.decimal 类型是适用于财务和货币计算的 128 位数据类型。
4.C# 的 bool 类型用于表示布尔值(true 或 false)。
5.C# 使用 Unicode 编码处理字符和字符串。 char 类型表示 UTF-16 代码单元,string 类型表示一系列 UTF-16 代码单元。
下面总结了 C# 的数值类型
1.有符号整型
有符号的整型 | 数值范围 |
---|---|
sbyte | 8 位,介于 -128 到 127 之间 |
short | 16 位,介于 -32,768 到 32,767 之间 |
int | 32 位,介于 -2,147,483,648 到 2,147,483,647 之间 |
long | 64 位,介于 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间 |
2.无符号整型
无符号的整型 | 数值范围 |
---|---|
byte | 8 位,介于 0 到 255 之间 |
ushort | 16 位,介于 0 到 65,535 之间 |
uint | 32 位,介于 0 到 4,294,967,295 之间 |
ulong | 64 位,介于 0 到 18,446,744,073,709,551,615 之间 |
3.浮点
浮点 | 数值范围 |
---|---|
float | 32 位,介于 1.5 × 10-45 到 3.4 × 1038 之间,7 位精度 |
double | 64 位,介于 5.0 × 10-324 到 1.7 × 10308 之间,15 位精度 |
4.Decimal
Decimal | 数值范围 |
---|---|
decimal | 128 位,至少介于 -7.9 × 10-28 到 7.9 × 1028 之间,至少为 28 位精度 |