15.3.1 接口成員的定義
接口可以包含一個和多個成員,這些成員可以是方法、屬性、索引指示器和事件,但不能是常量、域、操作符、構造函數或析構函數,而且不能包含任何靜態成員。下面例子中接口IExample包含了索引指示器、事件E、方法F、屬性P這些成員:
interface IExample { string this[int index] {get;set;} event EventHandler E; void F(int value); string P{get;set;} }
public delegate void EventHandler(object sender,EventArgs e);
接口成員默認訪問方式是public。接口成員聲明不能包含任何修飾符,比如成員聲明前不能加abstract,public,protected,internal,private,virtual,override或static修飾符。
接口的成員之間不能相互同名。繼承而來的成員不用再聲明,但接口可以定義與繼承而來的成員同名的成員,這時我們說接口成員覆蓋了繼承而來的成員,這不會導致錯誤,但編譯器會給出一個警告。關閉警告提示的方式是在成員聲明前加上一個new關鍵字。但如果沒有覆蓋父接口中的成員,使用new關鍵字會導致編譯器發出警告。
15.3.2 對接口成員的訪問
15.3.3 接口成員的全權名