В языке программирования C# с целью изоляции описательной части класса от его реализации используется механизм интерфейсов.
Понятие интерфейса является расширением идеи абстрактных классов и методов. Синтаксис интерфейсов подобен синтаксису абстрактных классов. Объявление интерфейсов осуществляется с помощью ключевого слова interface. При этом методы интерфейса не поддерживают реализации.
Членами интерфейса могут быть методы, свойства, индексаторы и события.
Интерфейс может реализовываться произвольным количеством классов. Один класс, в свою очередь, может реализовывать любое число интерфейсов.
Каждый класс, включающий интерфейс, должен реализовывать его методы. В интерфейсе для методов неявным образом присутствует модификатор доступа типа public. При этом явное указание модификатора доступа недопустимо.