

Java技术
2005: 03 04 05 06 07 08
09 10 11 12
2006: 01 02
Asp.net
2005: 07 08 09 10 11 12
2006: 01 02

一周学会C#(值的类型)
C#才鸟(QQ:249178521)
1.整型
|
类型 |
位数 |
System. |
与CLS兼容? |
有无符号 |
|
sbyte |
8 |
SByte |
否 |
有 |
|
ushort |
16 |
UInt16 |
否 |
无 |
|
uint |
32 |
UInt32 |
否 |
无 |
|
ulong |
64 |
UInt64 |
否 |
无 |
|
|
|
|
|
|
|
byte |
8 |
Byte |
是 |
无 |
|
short |
16 |
Int16 |
是 |
有 |
|
int |
32 |
Int32 |
是 |
有 |
|
long |
64 |
Int64 |
是 |
有 |
有符号整形和字节型是属于“通用语言认证系统”(CLS)的。而无符号整形不属于CLS。
你可以使用原始的类型关键字(如int)或与之对应的别名(如System.Int32),这两种方法都是可行的。但唯一例外的情况是:当你把类型名作为.net framework函数实参的时候,你只能使用System.Int32,而不能使用int。例如,你必须这样调用:Type.GetType("System.Int32"),而Type.GetType("int")语句是错误的。这是因为int只是C#中的关键字,而.net framework函数是设计成在所有的.net语言中都通用的。必须注意的是byte在C#中是无符号的。
注意:byte和sbyt只有8位,因此它们不能作为数组的元素,因为数组元素的最小尺寸是16位(2字节)。
2.基本操作符
|
括号 |
(x) |
|
访问成员 |
x.y |
|
函数调用 |
f(x) |
|
访问数组(不是元素) |
a[x] |
|
自增 |
x++ |
|
自减 |
x-- |
|
调用构造函数 |
new |
|
获得类名 |
typeof |
|
获得尺寸 |
sizeof(不安全的) |
|
数值检查 |
(un)checked |
基本操作符具有最高的优先级。
new只能在调用构造函数的时候使用,并且不能被用来重载。使用new来调用结构的构造函数会在栈(stack)中分配内存,而用new来调用类的构造函数会在堆(heap)中分配内存。在C#中,结构是值类型的,类是引用类型的。
sizeof返回类或一个表达式的尺寸,但它只能用在标识为unsafe的代码块中。
checked和unchecked操作符用来控制是否检查算术运算溢出。
3. 操作符的优先级别
|
基本操作符 |
见上表 |
|
一元操作符 |
+ - ! ~ ++x –-x (T)x |
|
乘和除 |
* / %(取余数) |
|
加和减 |
+ - |
|
移位 |
<< >> |
|
关系 |
< > <= >= is as |
|
相等 |
== != |
|
位操作 |
& ^ | (注意:左边比右边级别高) |
|
布尔 |
&& || ?: (注意:左边比右边级别高) |
|
赋值 |
= *= /= %= += -= ... |
所有的一元操作符都可以重载。
乘和除、加和减、移位、关系(is as 例外)、相等和位操作可以重载。
&&和||只能使用true/false转换操作符时才可以重载。
?:和=不能重载。
复合赋值操作符(如*= /=)可以重载。