Интерфейсы в C# исполняют роль соглашений.
В терминологии программирования интерфейс похож на класс, за исключением того, что ни один из его членов не реализован. Интерфейс группирует методы, свойства, события и индексаторы. Для него нельзя создать экземпляр: все что он содержит, — сигнатуры своих членов, причем таковыми могут быть только указанные четыре типа членов.
Интерфейс не имеет конструкторов и полей. Интерфейс не может иметь перегруженных операций.
Интерфейс объявляется практически также как класс, за исключением того, что его члены не имеют реализации (наподобие абстрактных методов). Отсутствие реализации и модификаторов доступа.
Пример реализации интерфейса:
interface IEnumerator { // свойства object Current { get; } // методы bool MoveNext(); void Reset(); } ... public class myClass : IEnumerator, IConvertible {
Интерфейс IEnumerator важен для реализации коллекций и разработан для инкапсуляции функций перемещения по элементам коллекций (System.Collections) и разработан для инкапсуляции функций перемещения по элементам коллекции.
Класс реализует интерфейс, наследуя его обеспечивая реализации всех членов, объявленных в этом интерфейсе. Класс может наследовать любое количество интерфейсов.
Убедиться в том, что класс реализует интерфейс можно с помощью ссылки на этот интерфейс.
IMyEnumerator my = new myClass(); my.MoveNext();
Интерфейсы могут наследоваться друг от друга точно также, как и классы.
interface IMyEnumerator : IDisposable