第四章 C#类型
上一篇 / 下一篇 2008-01-10 18:20:29 / 个人分类:做着
W3sX+Qs7}.G K d0第四章 C#类型
qY7s/_|b0既然你知道了怎样创建一个简单的C#程序,我将会给你介绍C#的类型系统。在这一章中,你学到如何使用不同的值和引用类型,加框和消框机制能为你作些什么。尽管这一章的不侧重于例子,但你可以学到很多重要的信息,关于如何创建现成类型的程序。
YJ bg*rVWtX~04.1 值类型
qV)n}h"f'fw2V){p0各种值类型总是含有相应该类型的一个值。C#迫使你初始化变量才能使用它们进行计算-变量没有初始化不会出问题,因为当你企图使用它们时,编译器会告诉你。 每当把一个值赋给一个值类型时,该值实际上被拷贝了。相比,对于引用类型,仅是引用被拷贝了,而实际的值仍然保留在相同的内存位置,但现在有两个对象指向了它(引用它)。C#的值类型可以归类如下:
,|y%ljy(^,a0·简单类型(Simple types )ITPUB个人空间i1?`'rH9k(BI?3?
·结构类型(struct types)
C:v5AwdO0·枚举类型(Enumeration types)ITPUB个人空间(Z1v8o?;GN
4.1.1 简单类型ITPUB个人空间+fX i&Zhm/B s'S/_R
在C#中出现的简单类型共享一些特性。第一,它们都是.NET系统类型的别名。第二,由简单类型组成的常量表达式仅在编译时而不是运行时受检测。最后,简单类型可以按字面被初始化。以下为C#简单类型归类:ITPUB个人空间:F} f;BR/ob|
·整型
'p}c|1CJ5LY0jl0·布尔型
0~a kab/p3wHS0· 字符型 (整型的一种特殊情况)ITPUB个人空间,j;M{3B]d.v
·浮点型
!|jJkU3p^0·小数型
4.1.1.1 整型
!|(h8R
IY0C#中有9个整型。 sbyte 、byte、 short、 ushort、 int、 uint、 long、 ulong 和 char(单独一节讨论)。它们具有以下特性:
·sbyte型为有符号8位整数,取值范围在128~127之间。
2[c:E#e.Gr4Db0·bytet型为无符号16位整数,取值范围在0~255之间。ITPUB个人空间*J9T[ RU?.EyB
·short型为有符号16位整数,取值范围在-32,768~32,767之间。ITPUB个人空间
LK{*E/B
·ushort型为无符号16位整数,取值范围在0~65,535之间。ITPUB个人空间5jk(uJi,pM
·int型为有符号32位整数,取值范围在-2,147,483,648~ 2,147,483,647之间。ITPUB个人空间]'y'fX7g/z0f f&]
·uint型为无符号32位整数,取值范围在 0 ~ 4,294,967,295之间。ITPUB个人空间({({:Ht%c+sCG
lm
·long型为64位有符号整数,取值范围在9,223,372,036,854,775,808~ 9,223,372,036,854,775,807之间。
\:E6b5I4mF0·ulong型为64位无符号整数,取值范围在0 ~ 18,446,744,073,709,551,615之间。
VB和C程序员都可能会对int和long数据类型所代表的新范围感到惊讶。和其它的编程语言相比,在C#中,int不再取决于一个机器的字(word)的大小,而long被设成64位。
4.1.1.2 布尔型ITPUB个人空间Q:I(b l g
e2s~Ih*|
布尔数据类型有true和false两个布尔值。可以赋于true或false值给一个布尔变量,或可以赋于一个表达式,其所求出的值等于两者之一:
2^#jfg'hI0B)N0bool bTest = (80 > 90);ITPUB个人空间2s:I'iuWP
与C和C++相比,在C#中,true值不再为任何非零值。不要为了增加方便而把其它整型转换成布尔型。
4.1.1.3 字符型
1Ny;q U ^zv0字符型为一个单Unicode 字符。一个Unicode字符16位长,它可以用来表示世界上多种语言。可以按以下方法给一个字符变量赋值:
Y~/l
P [z+u&t-v$Q0char chSomeChar = ''''A'''';