0%

C# 筆記 - 型別與變數

C# ASP.NET

資料型別

C# 中有兩種型別:實值型別參考型別

實值型別

變數的記憶體空間存放的是實際的值。如 int x = 5,x 的內容就是 5。

實值型別可進一步細分為簡單型別列舉型別結構型別可為 Null 的實值型別

  • 簡單型別

    • 帶正負號的整數︰sbyteshortintlong
    • 不帶正負號的整數︰byteushortuintulong
    • Unicode 字元:char
    • IEEE 二進位浮點:floatdouble
    • 高精確度十進位浮點:decimal
    • 布林值:bool

    C# 的 bool 型別用來代表布林值 — 不是 truefalse 的值。

  • 枚舉類型
    使用者定義型別,格式為 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# 常用到的基本資料型別

C# 常用的資料型別

橘色標示的是比較常使用到的型別。了解更多

  • 考量到記憶體的使用效能,整數分類較多。
  • 物件導向設計裡,萬物都是物件,物件在宣告時都需要使用 new 的方式給他一個新的記憶體空間。但值類型的基本型別 (object 除外),宣告都不需要使用 new。

變數與變數宣告

跟 JavaScript 有點像,都需要變數宣告、定義變數名稱還有給予其值。

  1. 變數定義: 用來表示值的名稱。顧名思義,存在變數裡的值是可以被改變的。
  2. 宣告方式: 資料型別 變數名稱 = 內容
  3. 類別、結構、靜態變數、陳列元素中的變數宣告時若無指派初值,會自動給予初始值。
  4. 數字型別初始值為 0
  5. 參考型別初始值為 null
  6. 布林預設值為 false

常用的方式如下 (跟 JS 有 87% 像)

1
2
3
4
5
6
7
int a;// 宣告 a 是一個可以存整數的變數
int a = 1;// 宣告 a 是一個整數,且賦值1給a
char sex = 'F';// 字元宣告用單引號
string apple = "好吃";// 字串宣告用雙引號

int a,b,c;// 可以一次宣告多個同型別的變數
int a,b = 0,c = 1;// 也可以同時賦值

參考資料

型別與變數

Day06-C#變數與變數宣告、常數與常數宣告、var、型別轉換