Jon Jagger
Table of Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Notes DownloadECMA-334 C# Language Specificationpreviousnextprevious at this levelnext at this level 20 Interfacesprevious at this levelnext at this level 20.1 Interface declarationsprevious at this levelnext at this level 20.1.2 Base interfaces Paragraph 11 An interface can inherit from zero or more interfaces, which are called the explicit base interfaces of the interface. 2 When an interface has one or more explicit base interfaces, then in the declaration of that interface, the interface identifier is followed by a colon and a comma-separated list of base interface identifiers. interface-base : : interface-type-list Paragraph 21 The explicit base interfaces of an interface must be at least as accessible as the interface itself (§10.5.4). [Note: For example, it is a compile-time error to specify a private or internal interface in the interface-base of a public interface. end note] Paragraph 31 It is a compile-time error for an interface to directly or indirectly inherit from itself. Paragraph 41 The base interfaces of an interface are the explicit base interfaces and their base interfaces. 2 In other words, the set of base interfaces is the complete transitive closure of the explicit base interfaces, their explicit base interfaces, and so on. 3 An interface inherits all members of its base interfaces. [Example: In the example
interface IControl  
   void Paint();  
interface ITextBox: IControl  
   void SetText(string text);  
interface IListBox: IControl  
   void SetItems(string[] items);  
interface IComboBox: ITextBox, IListBox {}  
the base interfaces of IComboBox are IControl, ITextBox, and IListBox. In other words, the IComboBox interface above inherits members SetText and SetItems as well as Paint. end example]
Paragraph 51 A class or struct that implements an interface also implicitly implements all of the interface's base interfaces.
{ JSL }
Jagger Software Ltd
Company # 4070126
VAT # 762 5213 42
Valid HTML 4.01Valid CSS