分类目录

链接

2011 年 12 月
 1234
567891011
12131415161718
19202122232425
262728293031  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > .NET > 正文
C#预定义类型
.NET 暂无评论 阅读(2,068)

8位有符号的整数 7 7

sbyte System.SByte –128~127 (–2~2–1)

16位有符号的整数 15 15

short System.Int16 –32 768~32 767 (–2 ~2 –1)

32位有符号的整数 31 31

int System.Int32 –2 147 483 648~2 147 483 647(–2 ~2 –1)

long System.Int64 64位有符号的整数 –9 223 372 036 854 775 808~9 223 372 036

854 775 807(–263~263–1)

8位无符号的整数 8

byte System.Byte 0~255(0~2–1)

16位无符号的整数 16

ushort System.Uint16 0~65535(0~2 –1)

32位无符号的整数 32

uint System.Uint32 0~4 294 967 295(0~2 –1)

ulong System.Uint64 64位无符号的整数 0~18 446 744 073 709 551 615(0~264–1)

Windows的将来版本将支持64位处理器,可以把更大的数据块移入移出内存,获得更快的处理速度。因此,C#支持8~64位的有符号和无符号的整数。

当然,Visual Basic开发人员会发现有许多类型名称是新的。C++和Java开发人员应注意:一些C#类型的名称与C++和Java类型一致,但其定义不同。例如,在C#中,int总是32位带符号的整数,而在C++中,int是带符号的整数,但其位数取决于平台(在Windows上是32位)。在C#中,所有的数据类型都以与平台无关的方式定义,以备将来C#和.NET迁移到其他平台上

 

byte是0~255(包括255)的标准8位类型。注意,在强调类型的安全性时,C#认为byte类型和char类型完全不同,它们之间的编程转换必须显式写出。还要注意,与整数中的其他类型不同,byte 类型在默认状态下是无符号的,其有符号的版本有一个特殊的名称sbyte。

在.NET中,short不再很短,现在它有16位,Int类型更长,有32位。 long类型最长,有64位。所有整数类型的变量都能赋予十进制或十六进制的值,后者需要0x前缀:

long x = 0x12ab;

如果对一个整数是int、uint、long或是ulong没有任何显式的声明,则该变量默认为int类型。为了把键入的值指定为其他整数类型,可以在数字后面加上如下字符:

uint ui = 1234U;

long l = 1234L;

ulong ul = 1234UL;

也可以使用小写字母u和l,但后者会与整数1混淆。

2. 浮点类型

C#提供了许多整型数据类型,也支持浮点类型,如表2-2所示。C和C++程序员很熟悉它们。

表 2-2

名 称 CTS 类 型 说 明 位 数 范围(大致)

32位单精度浮点数 -45 38float System.Single 7 ±1.5 × 10 ~±3.4 × 10

64位双精度浮点数 -324 308double System.Double 15/16 ±5.0 × 10 ~±1.7 × 10

float 数据类型用于较小的浮点数,因为它要求的精度较低。double 数据类型比 float数据类型大,提供的精度也大一倍(15位)。

如果在代码中没有对某个非整数值(如 12.3)硬编码,则编译器一般假定该变量是double。如果想指定该值为float,可以在其后加上字符F(或f):

float f = 12.3F;

3. decimal类型

另外,decimal类型表示精度更高的浮点数,如表2-3所示。

表 2-3

名 称 CTS 类 型 说 明 位 数 范围(大致)

128位高精度十进制数 -28 28decimal System. 28 ±1.0×10 ~±7.9 × 10

Decimal 表示法
37 第Ⅰ部分 C# 语 言

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

要把数字指定为decimal类型,而不是double、 float或整型,可以在数字的后面加上字符M(或m),如下所示。

decimal d = 12.30M;

4. bool类型

C#的 bool 类型用于包含布尔值true或false,如表2-4所示。

表 2-4

名 称 CTS 类 型 值

bool System.Boolean true或false

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

5. 字符类型

为了保存单个字符的值,C#支持char数据类型,如表2-5所示。

表 2-5

名 称 CTS 类 型 值

char System.Char 表示一个16位的(Unicode)字符

虽然这个数据类型在表面上类似于C和C++中的char类型,但它们有重大区别。C++的char表示一个8位字符,而C#的char包含16位。其部分原因是不允许在char类型与8位byte类型之间进行隐式转换。

尽管8位足够编码英语中的每个字符和数字0~9了,但它们不够编码更大的符号系统中的每个字符(例如中文)。为了面向全世界,计算机行业正在从8位字符集转向16位的Unicode模式,ASCII编码是Unicode的一个子集。

char类型的字面量是用单引号括起来的,例如'A'。如果把字符放在双引号中,编译器会把它看作是字符串,从而产生错误。

除了把 char 表示为字符字面量之外,还可以用 4 位十六进制的 Unicode 值(例如'\u0041'),带有数据类型转换的整数值(例如(char)65),或十六进制数('\x0041')表示它们。它们还可以用转义序列表示,如表2-6所示。

 

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:C#预定义类型 | Bruce's Blog

发表评论

留言无头像?