Основная идея интерфейса - определить контракт поведения, который другие классы могут реализовать. Этот контракт представляет чистые абстракции действий, которые должен выполнять класс. Поля же являются состоянием объекта и в терминах ООП лучше применять их в конкретных классах, а не в интерфейсах. Интерфейсы содержат только общедоступные статические константы и объявления методов. В них нет полей, потому что это могло бы представлять состояние, и все реализующие интерфейс классы были бы обязаны иметь эти поля. Это противоречит принципу инкапсуляции и абстракции в ООП. В некоторых языках программирования, например, в Java, допускается использование в интерфейсах констант (обычно это публичные, статические, финальные поля). Их можно использовать для определения значений, которые остаются неизменными для всех классов, реализующих данный интерфейс. Однако это не совсем тоже самое, что и нестатические поля, которые могут изменяться и обеспечивают состояние объекта.
Интерфейсы содержат только список методов, а не данные, поэтому в интерфейсе нет полей. Свойства в интерфейсе - это упрощенный синтаксис для вызова методов, которые получают и устанавливают значения. Такие свойства можно использовать в интерфейсе без проблем. Автоматически реализуемые свойства в классе внешне похожи на описание свойства в интерфейсе, но фактически это просто сокрытая реализация. В интерфейсе пустые тела аксессоров означают, что реализующий класс должен их реализовать. В классе автосвойство компилируется в поле, но в интерфейсе это не происходит. Делегаты - это типы данных, а события - это аналоги свойств. Поля и свойства с типом делегата и события - это разные концепции.
Полезно знать, что интерфейс содержит только список методов, а не поля. Однако свойства могут быть включены в интерфейс в виде упрощенного синтаксиса для доступа к данным. Автоматически реализуемое свойство в объекте похоже на свойство в интерфейсе, но оно имеет дополнительные методы для чтения и записи. Это связано с тем, что поле используется для хранения данных, в то время как свойство предоставляет методы доступа к данным. Когда речь идет о делегатах и событиях, стоит учесть следующее: делегаты - это типы данных, а события - это аналог свойств. Вы не можете объявить делегат в интерфейсе, но можете объявить событие. Это аналогично с полями и свойствами: поля или свойства с типом делегата являются полями или свойствами с типом делегата.