自訂型別
除了 C# 內建的 16 種預設型別之外,開發者可自行建立使用者自訂型別,總共分為六大類:
- 類別(class)型別
- 結構(struct)型別
- 陣列(array)型別
- 列舉(enum)型別
- 委派(delegate)型別
- 介面(interface)型別
建立自訂型別必須透過型別宣告完成
- 欲建立的型別種類
- 新型別的名稱
- 該型別所有成員的宣告(名稱與定義),陣列、委派除外,這兩種型別不具名稱成員
宣告完畢後,就能像使用預設型別一樣建立、操作該型別的物件。
預設型別(內建型別)可直接使用、直接實體化物件;而自訂型別,顧名思義得先自行宣告型別(如同繪製設計圖),才能接著實體化物件。
舉例來說:int、float 這類內建基礎型別開箱即用,不用事先定義,直接寫 int age; float price; 就能使用。
至於前面提到的 Person 自訂型別,則要分成兩個步驟:
第一步:宣告(以 class Person {} 定義型別樣板)
第二步:實體化(透過 Person lucas = new Person(); 建立物件)
// 汽車類別
public class Car
{
// 1. 私有欄位(底層存放資料)
private string _brand; // 車廠品牌
private string _color; // 車身顏色
// 2. 公開屬性(對外開放存取介面,可加上驗證邏輯)
public string Brand
{
get { return _brand; }
set
{
// 簡單驗證:品牌不能為空
if (!string.IsNullOrEmpty(value))
_brand = value;
else
Console.WriteLine("品牌名稱不得空白!");
}
}
public string Color
{
get { return _color; }
set { _color = value; }
}
// 3. 行為方法:開車
public void Drive()
{
Console.WriteLine($"一輛【{Color}】的【{Brand}】正在行駛中!");
}
}Code language: JavaScript (javascript)
上方範例是一個汽車類別,內含兩個欄位。欄位本質是變數,使用內建型別負責實際儲存資料;另外還有兩個公開屬性 public string Brand{} 與 public string Color{},這兩者實際上是函式,後續章節會詳細說明;最後還有一個函式成員 public void Drive(){}。
後續章節我們會針對各種自訂型別做完整重點講解。

使用者自訂型別