| 約束 | 含義 |
|---|---|
where T : struct | T 必須為值型別 (繼承 ValueType,排除 nullable) |
where T : class | T 必須為參考型別 (類別、介面、委派、陣列) |
where T : new() | T 必須有公用無參數建構子 |
where T : BaseClass | T 必須繼承自 BaseClass 或實作該介面 |
可組合:public class Point
Stack → 以 int 取代佔位符產生機器碼,**實例化**+、-、== 等運算子 (需透過介面約束或 dynamic)繼承提供「縱向」關聯 (基類 → 衍生類);泛型提供「橫向」關聯 — **讓編譯器知道不同方法參數/回傳值的型別相同** (如
Add(T)與Remove(T)同為 T)。此機制類似 AOP 切面思維,將型別一致性約束提升至編譯期,帶來類型安全與重構彈性的雙重收益。