介面的成員包括從基介面繼承的成員和由介面本身宣告的成員。
乙個介面宣告可以宣告零個或多個成員。介面的成員必須是方法、屬性、事件或索引器。介面不能包含常量、字段、運算子、例項建構函式、析構函式或型別,也不能包含任何種類的靜態成員。
所有介面成員都隱式地具有 public 訪問屬性。介面成員宣告中包含任何修飾符都屬於編譯時錯誤。具體來說,不能使用修飾符 abstract、public、protected、internal、private、virtual、override 或 static 來宣告介面成員。
在以下示例中:
public delegate void stringlistevent(istringlist sender);
public inte***ce istringlist
event stringlistevent changed;
string this[int index]
}宣告了乙個介面,該介面的成員涵蓋了所有可能作為介面成員的種類:方法、屬性、事件和索引器。
inte***ce-declaration 建立新的宣告空間(第 3.3 節),並且 inte***ce-declaration 直接包含的 inte***ce-member-declarations 將新成員提供給該宣告空間。以下規則適用於 inte***ce-member-declaration:
· 方法的名稱必須與同一介面中宣告的所有屬性和事件的名稱不同。此外,方法的簽名(第 3.6 節)必須不同於在同一介面中宣告的所有其他方法的簽名,並且在同一介面中宣告的兩種方法的簽名不能只有 ref 和 out 不同。
· 屬性或事件的名稱必須與同一介面中宣告的所有其他成員的名稱不同。
· 乙個索引器的簽名必須區別於在同一介面中宣告的其他所有索引器的簽名。
準確地說,介面所繼承的成員不是該介面的宣告空間的一部分。因此,允許介面用與它所繼承的成員相同的名稱或簽名來宣告新的成員。發生這種情況時,則稱派生的介面成員隱藏了基介面成員。隱藏乙個繼承的成員不算是錯誤,但這確實會導致編譯器發出警告。為了避免出現上述警告,派生介面成員的宣告中必須包含乙個 new 修飾符,以指示該派生成員將要隱藏對應的基成員。第 3.7.1.2 節中對該主題進行了進一步討論。
如果在不隱藏所繼承成員的宣告中包含 new 修飾符,將對此狀況發出警告。通過移除 new 修飾符可取消顯示此警告。
請注意,嚴格來講,類 object 中的成員不是任何介面的成員(第 13.2 節)。但是,通過在任何介面型別中進行成員查詢,可獲得類 object 中的成員(第 7.3 節)。
概述C 定義介面成員
從技術上講,介面是一組包含了函式型方法的資料結構。通過這組資料結構,客戶 可以呼叫元件物件的功能。c 定義介面成員 介面可以包含乙個和多個成員,這些成員可以是方法 屬性 索引指示器和事件,但不能是常量 域 操作符 建構函式或析構函式,而且不能包含任何靜態成員。介面定義建立新的定義空間,並且介面定義直...
c 報錯不實現介面成員 C 類和介面
1.類的定義 c 使用類關鍵字class定義類,如 public class myclass 2.類的繼承 類繼承使用 public class baseclass public class myclass baseclass 3.子類的可訪問不能大於父類的可訪問性,如下是錯誤的 internal ...
顯示介面成員
如下面的idrivable和istreerable都宣告了turnleft 方法 public inte ce idrivable void turnleft public inte ce istreerable void turnleft 如果宣告乙個類實現這兩個介面,在類中必須定義兩個turnl...