C# 型別分為實值型別(直接儲存資料)與參考型別(儲存記憶體位址)。所有型別在記憶體佔用固定大小,例如 int 佔 4 位元組(32 位元),範圍為 -2,147,483,648 ~ 2,147,483,647。無符號型別(uint)無正負號位,範圍 0 ~ 4,294,967,295。
| C# 型別 | 位元數 | 有號 | 範圍 |
|---|---|---|---|
| sbyte | 8 | 是 | -128 ~ 127 |
| byte | 8 | 否 | 0 ~ 255 |
| short | 16 | 是 | -32,768 ~ 32,767 |
| ushort | 16 | 否 | 0 ~ 65,535 |
| int | 32 | 是 | -2,147,483,648 ~ 2,147,483,647 |
| uint | 32 | 否 | 0 ~ 4,294,967,295 |
| long | 64 | 是 | -9.22×10¹⁸ ~ 9.22×10¹⁸ |
| ulong | 64 | 否 | 0 ~ 1.84×10¹⁹ |

int page = 888; // 宣告並指派
int page2; // 僅宣告
page2 = 888; // 稍後指派
佔 1 位元,值為 true 或 false。
bool flag = false;
bool isEqual = (3 == 5); // false
char 佔 16 位元(Unicode),單引號括住單一字元。
char c1 = 'A';
char c2 = '中';
// char c3 = 'AB'; // 編譯錯誤:字元常數過長
string 為參考型別,雙引號括住,內部以 \0 結尾。
string name = "bianceng";
// 記憶體結構:b i a n c e n g \0
| 型別 | 大小(位元) | 精度(有效數字) | 後綴 |
|---|---|---|---|
| float | 32 | 7 位 | f / F |
| double | 64 | 15-16 位 | d / D (預設) |
| decimal | 128 | 28-29 位 | m / M |
double d = 157.144;
float f = 888.777f;
decimal m = 999.999m;
decimal 適合財務計算,避免二進位浮點誤差。
char(即使範圍完全涵蓋)。char 常數必須用字元形式,整數形式需強制轉型:char c = (char)65;
0 NUL 32 SP 64 @ 96 `
1 SOH 33 ! 65 A 97 a
2 STX 34 " 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 ' 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DC1 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 \ 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 ~
31 US 63 ? 95 _ 127 DEL
後續章節將詳細講解複雜型別:結構體、陣列、枚舉。