类型和变量
作者:邹爱红 撰写时间:2019-3-3
C# 中有两种类型:值类型 (value type) 和引用类型(reference type)。
值类型的变量直接包含它们的数据,而引用类型的变量存储对它们的数据的引用,后者称为对象。
对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象。对于值类型,每个变量都有它们自己的数据副本(除ref 和 out 参数变量外),因此对一个变量的操作不可能影响另一个变量。C# 的值类型进一步划分为简单类型 (simple type)、枚举类型 (enum type) 和结构类型 (struct type),C# 的引用类型进一步划分为类类型 (class type)、接口类型 (interface type)、数组类型 (array type) 和委托类型 (delegate type)。
下表为 C#类型系统的概述。
值类型直接赋值 Int i=1
简单类型:
有符号整型: sbyte, short, int, long
无符号整型: byte, ushort, uint, ulong
Unicode 字符: char mychar=’22’,’a’
IEEE 浮点型: float, double
高精度小数: decimal
布尔型: bool ( sql:bit)
Int i=2,j=5
枚举类型:enum E {…} 形式的用户定义的类型
结构类型:struct S {…} 形式的用户定义的类型
引用类型创建对像New。对对象的成员赋值
类类型:所有其他类型的最终基类: object
Unicode 字符串: string
class C {…} 形式的用户定义的类型
接口类型:interface I {…} 形式的用户定义的类型
数组类型:一维和多维数组,例如 int[] 和 int[,]
委托类型:delegate T D(…) 形式的用户定义的类型
八种整型类型分别支持 8 位、16 位、32 位和 64 位整数值的有符号和无符号的形式。
两种浮点类型:float 和 double,分别使用
32 位单精度和
64 位双精度的
IEEE 754 格式表示。
decimal 类型是 128 位的数据类型,适合用于财务计算和货币计算。
C# 的 bool 类型用于表示布尔值 — 为 true 或者 false 的值。
在 C# 中,字符和字符串处理使用 Unicode 编码。char 类型表示一个
16 位
Unicode 编码单元,string 类型表示 16 位
Unicode 编码单元的序列。
下面总结C# 的数值类型。
有符号整型 :
位数:8
类型: sbyte
范围/精度: –128…127
位数:16
类型: short
范围/精度: –32,768…32,767
位数:32
类型: int
范围/精度: –32,768…32,767
位数:64
类型: long
范围/精度:–9,223,372,036,854,775,808…9,223,372,036,854,775,807
无符号整型:
位数:8
类型: byte
范围/精度:0…255
位数:16
类型: ushort
范围/精度:0…65,535
位数:32
类型: uint
范围/精度:0…4,294,967,295
位数:64
类型: ulong
范围/精度:0…18,446,744,073,709,551,615
浮点数:
位数:32
类型: float
范围/精度:1.5 × 10−45 至3.4 × 1038,7 位精度
位数:64
类型: double
范围/精度:5.0 × 10−324 至1.7 × 10308,15 位精度
小数:
位数:128
类型: decimal
范围/精度:1.0 × 10−28 至7.9 × 1028,28 位精度