Интерфейсы должны определить свойства?

Интерфейсы, как определено MSDN "содержат только подписи методов, делегатов или событий". Однако, так как свойства являются не больше, чем синтаксическим сахаром для получения и метода установки, им также позволяют в интерфейсах. Мой вопрос - там какая-либо ситуация, где определение свойств в интерфейсе является соответствующим, или мы должны придерживаться сценариев, описанных MSDN?

25
задан Ryan 26 June 2019 в 18:22
поделиться

3 ответа

Я думаю, что свойства вполне приемлемы в интерфейсах.

Как вы сказали, они действительно являются методами получения, установки или получения и установки. Многие интерфейсы в Framework определяют свойства, такие как IAsyncResult и IWebProxy .

34
ответ дан 28 November 2019 в 20:43
поделиться

Да, интерфейс должен определять свойства, когда это действительно необходимо. Пожалуйста, предположите это. Существует интерфейс IUser, в котором определено свойство «Имя», и вы можете использовать его, не беспокоясь о том, не реализовал ли объект это свойство.

public void main()
{
    IUser u = User.GetUser("id");
    string name = u.Name;
}
3
ответ дан 28 November 2019 в 20:43
поделиться

В статье, на которую вы ссылаетесь, также говорится:

Интерфейс может быть членом пространства имен или класса и может содержать { {1}} подписи следующих членов:

  • Методы
  • Свойства
  • Индексаторы
  • События
15
ответ дан 28 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: