공용 형식 시스템의 인터페이스
업데이트: 2007년 11월
인터페이스는 "실행 가능" 관계나 "소유" 관계를 지정하는 계약을 정의합니다. 인터페이스는 비교 및 정렬(IComparable 및 IComparable<T> 인터페이스), 같음 테스트(IEquatable<T> 인터페이스) 또는 컬렉션의 항목 열거(IEnumerable 및 IEnumerable<T> 인터페이스)와 같이 기능을 구현하는 데 사용되는 경우가 많습니다. 인터페이스에는 속성, 메서드 및 이벤트가 있을 수 있으며 이러한 멤버는 모두 추상 멤버입니다. 즉, 인터페이스는 멤버와 시그니처를 정의하지만 각 인터페이스 멤버의 기능은 인터페이스를 구현하는 형식에서 정의해야 합니다. 따라서 인터페이스를 구현하는 모든 클래스나 구조체는 인터페이스에 선언된 추상 멤버에 대한 정의를 제공해야 합니다. 인터페이스를 구현하는 클래스나 구조체에서 하나 이상의 다른 인터페이스를 함께 구현해야 할 수도 있습니다.
인터페이스에는 다음과 같은 제약 조건이 따릅니다.
인터페이스의 액세스 가능성은 원하는 대로 선언할 수 있지만 모든 인터페이스 멤버는 공용 액세스 가능성을 가져야 합니다.
보안 권한을 멤버나 인터페이스 자체에 첨부할 수 없습니다.
인터페이스는 생성자를 정의할 수 없습니다.
인터페이스는 필드를 정의할 수 없습니다.
인터페이스에서 정의되는 모든 추상 속성, 메서드 및 이벤트는 인스턴스 멤버여야 하며 정적 멤버일 수 없습니다.
둘 이상의 인터페이스에서 시그니처가 동일한 멤버를 선언할 수 있고 이들 멤버가 별도의 구현을 가질 수 있으므로, 각 언어에서는 멤버를 필요로 하는 인터페이스에 구현을 매핑하기 위한 규칙을 제공해야 합니다.