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();
}
Если нужно хранить состояние, его реализуют в классах, которые реализуют интерфейс.