一般型別系統中的介面
更新:2007 年 11 月
介面會定義指定「可以執行」關聯性 (Relationship) 或「擁有」關聯性的合約。介面常用來實作功能,例如比較和排序 (IComparable 和 IComparable<T> 介面)、測試是否相等 (IEquatable<T> 介面),或列舉集合中的項目 (IEnumerable 和 IEnumerable<T> 介面)。介面可以擁有屬性、方法和事件,這些都是抽象成員,也就是說,雖然介面會定義成員及其簽章,但每個介面成員的功能則是由實作介面的型別所定義。這表示,實作介面的任何類別或結構都必須為介面中宣告的抽象成員提供定義。介面可能會要求任何實作類別或結構也必須實作一個或多個其他介面。
下列限制適用於介面:
介面可宣告為任何存取範圍,但是介面成員必須全部具有公用存取範圍。
不可將安全性權限附加到成員或介面本身。
介面無法定義建構函式。
介面不能定義欄位。
介面中定義的所有抽象屬性、方法和事件都必須為執行個體成員,而且不能是靜態成員。
由於可以使用相同簽章宣告成員的介面不只一個,而且這些成員可以具有分開的實作,因此每一種語言都必須提供規則,將實作對應到需要成員的介面。