Реализовать автообъявление для производных классов от базового класса? - PullRequest
3 голосов
/ 26 августа 2011

У меня есть и интерфейс, к которому я сделал обновления.Я хотел бы реализовать все свои изменения в моих производных классах как автоматические свойства, но они реализуются с исключением NotImplemented.Есть ли способ установить свойства, созданные ReSharper 6, как autoproeprty?

Ответы [ 2 ]

3 голосов
/ 01 сентября 2011

В настоящее время существует два различных способа реализации отсутствующих элементов интерфейса.

Первый вызывается нажатием Alt + Ins в теле реализующего класса и выбором Implement missing members. В появившемся диалоговом окне вы можете выбрать, чтобы свойства были реализованы как авто свойства.

Второе вызывается нажатием Alt + Введите при красном волнистом значении определение для класса реализации и выбора Implement members. Тела сгенерированных членов в этом случае управляются настройкой в ​​ReSharper | Options... | Languages | Common | Members Generation - где 'autoproperty' не является опцией.

Существует открытая проблема YouTrack для улучшения пользовательского интерфейса во втором случае для предоставления опции автообеспечения - JetBrains пометил его как критический, поэтому может превратить его в 6.1 иначе нам придется ждать 7.

0 голосов
/ 30 марта 2012

Вот хакерский обходной путь:

  1. Временно изменить интерфейс в класс.
  2. Сделайте желаемое свойство public и скопируйте его определение в буфер обмена
  3. Выполните рефакторинг Push Members Down, который скопирует элемент в разработчики.
  4. Верните класс обратно в интерфейс и повторно добавьте (используя вставку) свойство в интерфейс.

Необходимость делать это отстой, но это работает.

...