Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

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

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

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

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

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

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