Поделиться через


Интерфейсы в системе общих типов CTS

Обновлен: Ноябрь 2007

Интерфейс задает контракт, определяющий отношение типа "может" или "имеет". Интерфейсы часто используются для реализации различных функций, например для сравнения и сортировки (интерфейсы IComparable и IComparable<T>), проверки равенства (интерфейс IEquatable<T>) или перечисления элементов коллекции (интерфейсы IEnumerable и IEnumerable<T>). У интерфейсов могут быть свойства, методы и события, являющиеся абстрактными членами. Это значит, что хотя в интерфейсе и объявляются члены и их сигнатуры, за определение функций этих членов отвечает тип, реализующий данный интерфейс. Любой класс или структура, реализующие интерфейс, должны содержать определения абстрактных членов, объявленных в этом интерфейсе. Интерфейс может потребовать реализации одного или нескольких других интерфейсов в любом реализующем классе или структуре.

К интерфейсам применяются следующие ограничения.

  • Интерфейс может быть объявлен с любой доступностью, однако, члены интерфейса всегда должны иметь доступность уровня public.

  • К членам интерфейса или к самому интерфейсу не могут быть присоединены никакие разрешения безопасности.

  • В интерфейсах нельзя определять конструкторы.

  • В интерфейсах нельзя определять поля.

  • Все абстрактные свойства, методы и события, определенные в интерфейсе, должны быть членами экземпляра; они не могут быть статическими членами.

Поскольку член с одинаковой подписью может быть объявлен в нескольких интерфейсах, и эти члены могут иметь отдельные реализации, каждый язык должен предоставлять правила сопоставления реализации и интерфейса, для которого необходим данный член.

См. также

Основные понятия

Члены типов

Разрешения безопасности

Другие ресурсы

Система общих типов CTS