共通型システムのインターフェイス
更新 : 2007 年 11 月
インターフェイスは、"can do" 関係または "has a" 関係を指定するコントラクトを定義します。インターフェイスは、多くの場合、比較と並べ替え (IComparable インターフェイスや IComparable<T> インターフェイス)、等価テスト (IEquatable<T> インターフェイス)、コレクション内の項目の列挙 (IEnumerable インターフェイスや IEnumerable<T> インターフェイス) などの機能を実装するために使用されます。インターフェイスには、プロパティ、メソッド、およびイベントが含まれている可能性があり、これらはすべて抽象メンバです。つまり、メンバとそのシグネチャはインターフェイスによって定義されますが、各インターフェイス メンバの機能を定義するインターフェイスの実装は型に任されます。これは、インターフェイスを実装するクラスまたは構造体が、そのインターフェイスで宣言されている抽象メンバの定義を提供する必要があることを意味します。インターフェイスでは、そのインターフェイスを実装するクラスまたは構造体に対して、1 つ以上の他のインターフェイスを同時に実装するように要求することもできます。
インターフェイスには、次のような制限があります。
任意のアクセシビリティを指定してインターフェイスを宣言できますが、そのすべてのメンバのアクセシビリティは public であることが必要です。
インターフェイスのメンバまたはインターフェイス自体にセキュリティ アクセス許可を割り当てることはできません。
インターフェイスでコンストラクタを定義することはできません。
インターフェイスでフィールドを定義することはできません。
インターフェイスで定義されるすべての抽象プロパティ、メソッド、イベントは、インスタンス メンバである必要があります。これらを静的メンバにすることはできません。
複数のインターフェイスで同じシグネチャを持つメンバを宣言でき、それらのメンバが別個の実装を持つことができるため、各言語では、メンバの実装をそのメンバを要求するインターフェイスに割り当てるための規則を提供する必要があります。