
資料型別
C# 中有兩種型別:實值型別和參考型別。
實值型別
變數的記憶體空間存放的是實際的值。如 int x = 5,x 的內容就是 5。
實值型別可進一步細分為簡單型別、列舉型別、結構型別和可為 Null 的實值型別。
簡單型別
- 帶正負號的整數︰
sbyte、short、int、long。 - 不帶正負號的整數︰
byte、ushort、uint、ulong。 - Unicode 字元:
char。 - IEEE 二進位浮點:
float、double。 - 高精確度十進位浮點:
decimal。 - 布林值:
bool。
C# 的
bool型別用來代表布林值 — 不是true或false的值。- 帶正負號的整數︰
枚舉類型
使用者定義型別,格式為enum E {...}。結構型別
使用者定義型別,格式為struct S {...}。可為 Null 的實值類型
含有null值的所有其他數值型別的擴充。
參考型別
變數的記憶體空間存放的是值的記憶體位置,也就是放值的記憶體第一個開頭的地方。如 int[] A = new int[] {1,4,2}。A 存的就是 [1,4,2] 的記憶體位置。當要讀取 4 的時候,就是讀取 A[1],指的是 A 記憶體位置的第二個值 (因陣列第一個序列為 0)。
參考型別可進一步細分為類別型別 (物件、字串、自訂類別)、介面型別、陣列型別和委派型別。
- 類別類型
- 所有其他型別的基底類別︰
object。 - Unicode 字串:
string。 - 使用者定義型別,格式為
class C {...}。
- 所有其他型別的基底類別︰
- 介面型別
使用者定義型別,格式為interface I {...}。 - 陣列類型
單一維度和多維度,例如int[]和int[,]。 - 委派型別
使用者定義型別,格式為delegate int D(...)。
C# 常用到的基本資料型別

橘色標示的是比較常使用到的型別。了解更多
- 考量到記憶體的使用效能,整數分類較多。
- 物件導向設計裡,萬物都是物件,物件在宣告時都需要使用 new 的方式給他一個新的記憶體空間。但值類型的基本型別 (object 除外),宣告都不需要使用 new。
變數與變數宣告
跟 JavaScript 有點像,都需要變數宣告、定義變數名稱還有給予其值。
- 變數定義: 用來表示值的名稱。顧名思義,存在變數裡的值是可以被改變的。
- 宣告方式:
資料型別 變數名稱 = 內容。 - 類別、結構、靜態變數、陳列元素中的變數宣告時若無指派初值,會自動給予初始值。
- 數字型別初始值為
0。 - 參考型別初始值為
null。 - 布林預設值為
false。
常用的方式如下 (跟 JS 有 87% 像)
1 | int a;// 宣告 a 是一個可以存整數的變數 |
參考資料