資料型別
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 是一個可以存整數的變數 |
參考資料