Sobes.tech
Back to questions
Junior — Middle
68

Можно ли объявлять поля внутри интерфейсов?

Answer from AI

sobes.tech AI

В C# внутри интерфейсов нельзя объявлять поля (переменные экземпляра). Интерфейс может содержать только объявления методов, свойств, событий и индексаторов без реализации (до C# 8.0).

Это связано с тем, что интерфейс задаёт контракт, а не хранит состояние.

Начиная с C# 8.0, интерфейсы могут содержать реализации методов по умолчанию (default interface methods), но поля по-прежнему запрещены.

Пример интерфейса:

public interface IExample
{
    int Id { get; set; }
    void DoWork();
}

Если нужно хранить состояние, его реализуют в классах, которые реализуют интерфейс.