1. 程式人生 > >列舉與結構體

列舉與結構體

列舉與結構體

列舉 enum

列舉的作用是用來增加程式碼的可讀性,限制變數的使用範圍。列舉有以下特點:

  1. 一個完整的列舉包括關鍵字enum、變數名、{}以及列舉值,例如:

enum Fruits{
   Apple,
   Orange,
}
  1. 列舉變數的宣告要使用變數名,列舉值的呼叫也要使用變數名,使用如下:

Fruits apple = Fruits.Apple;
  1. 列舉字面值屬於整型,預設是int型別,可以通過在變數名後指定某一值型別,列舉可選的整型包括:byte、sbyte、short、ushort、int、uint、long以及ulong。

enum Fruits:uint{
   Apple,
   Orange,
}

不同的型別限制了列舉值的取值範圍,byte的可取值0~255,不能超出這個範圍。

  1. 列舉值的預設值為0,往後依次遞增加1。也可以在宣告時,指定預設值。

enum Fruits{
   Apple = 1
   Orange,
}
  1. 列舉值可以通過?宣告為可空型別,接收null,Fruits? apple = null

結構體

結構體的存在和類很像,但又有很大的區別:

  1. 結構體是值型別,類是引用型別

  2. 結構體的宣告使用關鍵字struct,類的宣告使用關鍵字class

  3. 結構體和類都包含一個預設建構函式,但是結構體的預設建構函式不允許自己宣告,類的預設建構函式可以進行宣告使用

  4. 結構體和類都允許自定義建構函式,進行欄位初始化,但結構體的必須對所有的欄位進行初始化;類的可以選擇性的初始化,剩餘的會由系統進行預設的初始化

  5. 結構體的欄位在宣告時不允許進行初始化,類的欄位可以在宣告時進行初始化操作

  6. 結構體存在棧中,類在棧中存放的是堆中例項物件的記憶體地址