一週學會C#(值的類型)
C#才鳥(QQ:249178521)
1.整型<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
類型 |
位數 |
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轉換操作符時才可以重載。
?:和=不能重載。
複合賦值操作符(如*= /=)可以重載。