計算機儲存與處理不同資料型別,C# 有基本資料型別、使用者自訂資料型別與參考型資料。先學基本型別 (系統內建)。
每種型別佔用系統記憶體固定空間。如 C# 整數 int 佔 4 位元組 (32 位);電腦用 0 和 1 二進制表示處理資料,故 32 位整數最大值 +2^31-1,最小值 -2^31-1。資料有無號與有號之分。int 與 uint 皆 32 位,但 uint 無正負,int 最高位決定正負。int 範圍 (-2^31-1 ~ +2^31-1);uint 範圍 (0 ~ 2^32-1)。
| C# 型別 | 位元數 (1 Byte=8 bits) | 最高位為符號位 | 取值範圍 |
|---|---|---|---|
| sbyte | 8 | Y | -128 ~ 127 |
| byte | 8 | N | 0 ~ 255 |
| short | 16 | Y | -32,768 ~ 32,767 |
| ushort | 16 | N | 0 ~ 65,535 |
| int | 32 | Y | -2,147,483,648 ~ 2,147,483,647 |
| uint | 32 | N | 0 ~ 4,294,967,295 |
| long | 64 | Y | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
| ulong | 64 | N | 0 ~ 18,446,744,073,709,551,615 |
整數型別定義兩種:int page = 888; (定義同時賦值) 或 int page; page = 888; (先定義後賦值)。
bool 佔 1 位,值只有 0 和 1,常用表示條件成立或運算式真偽。true 表真,false 表假。bool flag = false; bool text = true; bool real = (3 == 5); // real = false
所有字元型別有對應 ASCII 碼值 (0~127)。定義注意:char ch = 'x'; char ch1 = 'a'; 單引號間只能一字元。非法例:char ch3 = '222'; 編譯錯誤:字元常值中字元太多。
定義:string name = "bianceng"; 注意雙引號,勿與字元混淆。字串儲存有結束符 \0。以 string name = "bianceng" 為例,儲存結構:b i a n c e n g \0。
| 型別 | 大小 (位) | 精度 (有效數字位) |
|---|---|---|
| float | 32 | 7 |
| double | 64 | 15 |
| decimal | 128 | 28 |
三類皆有正負。定義:double price = 157.144; float price = 888.777f; decimal price = 999.999m;
Char 可能值對應 Unicode 字元集。與其他整數型別兩點不同:
char 隱含轉換。即使 sbyte、byte、ushort 能完整用 char 表示值,隱含轉換也不存在。char 常值必須寫為字元形式,若用整數形式必須帶型別轉換前綴。其他複雜型別後續章節詳細講解。
(完整 ASCII 碼表略)