Подтвердить что ты не робот

Создание интерфейса из существующего класса

У меня есть класс как:

Class MyClass
{
   public MyClass { ... }
   public string Name { get { ... } }
   public int IdNumber { get { ... } set { ... } }
   public void GenerateNme {...}
}

Это всего лишь образец класса. Я хочу создать интерфейс из него. Например, MyClass реализует интерфейс IMyClass. Я хочу, чтобы результат был

public Interface IMyClass
{
   string Name { get; }

   int IdNumber { get; set; }

   void GenerateNumber();
}

и

MyClass : IMyClass
{

}

Это можно сделать вручную, но мне было просто интересно узнать, есть ли какой-нибудь другой простой метод для выполнения этого? Если не ясно, оставьте комментарий.

Спасибо.

4b9b3361

Ответ 1

Да, вы можете извлечь интерфейс из класса с помощью Visual Studio:

Внутри файла целевого класса: Щелкните правой кнопкой мыши > Рефакторинг > Извлечь интерфейс...

Пример

enter image description here

затем

enter image description here

Ответ 2

В Visual Studio 2015/2017/2019 это находится в меню быстрых действий (Ctrl + период .)

Обязательно поместите курсор где-нибудь в имя класса, из которого вы хотите извлечь интерфейс. В противном случае он показывает "никаких быстрых действий, доступных здесь".

Примечание: это возможно только в том случае, если вы действительно можете извлечь интерфейс. Например, если ваш класс имеет только статические методы, это не сработает.

Ответ 3

В Visual Studio 2010 вы можете щелкнуть правой кнопкой мыши MyClass и выбрать Refactor, `Извлечь интерфейс..." (Ctrl + R, I). Это дает вам окно для проверки члены, которые нужно извлечь.

Ответ 4

В Visual Studio 2015 щелкните курсор или щелкните правой кнопкой мыши имя класса, затем выберите "Быстрые действия" (или нажмите Ctrl - .), и появится опция "Извлечь интерфейс".

Ответ 5

В меню рефакторинга визуальной студии есть опция "интерфейс экстракта", которая делает именно то, что вы описываете.

Ответ 6

Ctrl + . выскакивает "генерирование переопределений...", и ничего не происходит за пределами этого, поэтому я искал "рефакторинг" в окне поиска быстрого запуска. Результаты были изменены с помощью Edit → Refactor → Extract Interface (Ctrl + R, Ctrl + I).

Надеясь, этот совет поможет и кому-то другому. Я использую VS 2017 EE.