您的当前位置:首页正文

.Net类型 值类型

2025-01-21 来源:个人技术集锦

预定义类型值类型 数据类型C#关键字(如 int、short 和 string) 从编译器映射到.NET数据类型。例如,在C#中声明一个int类型的数据时声明的实际是.Net System.Int32的一个实例。 这似乎很深奥,但其意义深远;这表示在语法上,可以把所有基本类型看成支持某些方法的类。例如,要把int i转换为string类型,可以编写为下面代码;

string s = i.ToString();

应该强调的是,这种语法的背后,类型实际上仍存储为基本类型。基本类型在概念上用C#结构表示,所以肯定没有性能丢失。

1.整形

C#支持8种预定义的整数类型

名称 .Net 类型 说明 范围(最小~最大)
sByte System.SByte 8位有符号的整数
-128~127
short System.Int16 16位有符号的整数 -32768~32767
int System.Int32 32位有符号的整数 -2147483648~2147483647
long System.Int64 64位有符号的整数
-9223372036854775808~9223372036854775807
byte System.Byte 8位有符号的整数 0~255
ushort
System.UInt16
16位有符号的整数 0~65535
uint System.UInt32
32位有符号的整数
0~4294967295
ulong
System.UInt64
64位有符号的整数 0~18446744073709551615

2.浮点类型

C#提供支持许多整型数据类型,也支持浮点类型

名称 .Net 类型 说明
位数
范围(最小~最大)
float
System.Single
 32位单精度浮点数 7 -3.40282347E+38F~3.40282347E+38F
double
System.Double
64位双精度浮点数 15/16 -1.7976931348623157E+308~1.7976931348623157E+308
float数据类型用于较小的浮点值,因为它要求的精度较低。double数据类型比float数据类型大,提供的精度也大一倍(15位)。
如果在代码中对某个非整数值编码,则编译器一般假定该变量是double。如果想指定该值为float,可以在其后加上字符F或f。
float f = 12.3F;

3.Decimal类型

decimal类型表示精度更高的浮点数。

名称 .Net 类型 说明 位数 范围(最小~最大)
decimal System.Decimal 128位高精度十进制数表示法 28 -79228162514264337593543950335M~79228162514264337593543950335M

.Net和C#数据类型的一个重要优点是提供了一种专用类型进行财务计算,这就是decimal类型提供28位的方式取决于用户。换言之,可以用较大的精确度(带有美分)来表示较小的美元值,也可以在小数部分用更多的舍入来表示较大的美元值。但应注意,decimal类型不是基本类型,所以在计算时使用该类型会有性能丢失。

  要把数字指定为decimal类型而不是double,float或整数类型,可以在数字的后边加上字符M或m 如:

decimal d = 12.3M;

 4.布尔类型

 C#的bool类型用于包含布尔值true或false

 

名称 .Net 类型 说明 位数 范围(最小~最大)
bool System.Boolean 表示true或false NA true或false

 bool值和整数数值不能相互转换。如果变量(或函数的返回类型)声明为bool类型,就只能使用true或false。如果试图使用0表示false,非0值表示true,就会出错。

bool a = false;
bool b = 1>0;

 5.字符类型

 为了保存单个字符的值,C#支持char数据类型

名称 .Net 类型
char System.Char 表示一个16位的(Unicode)字符
char类型的字面量是用单引号括起来,如'A'。如果把字符放在双引号中,编译器会把它看成字符串,从而产生错误。
除了把char表示为字符字面量之外,还可以用4位十六位进制的Unicode值、带有强制类型转换的整数值或十六进制数表示它们。
它们还可以用转移序列表示如下。
转义序列 字符
\' 单引号
\" 双引号
\\ 反斜杠
\0
\a
警告
\b 退格
\f 换页
\n 换行
\r 回车
\t
水平制表符
\v 垂直制表符

 

显示全文