Создать интерфейс из существующего класса - PullRequest
53 голосов
/ 14 февраля 2012

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

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
{

}

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

Спасибо.

Ответы [ 7 ]

104 голосов
/ 14 февраля 2012

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

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

Пример

enter image description here

тогда

enter image description here

38 голосов
/ 14 января 2016

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

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

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

12 голосов
/ 14 февраля 2012

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

3 голосов
/ 16 февраля 2016

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

0 голосов
/ 03 марта 2019

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

0 голосов
/ 06 февраля 2018

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

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

0 голосов
/ 14 февраля 2012

В меню рефактора Visual Studio есть опция «Извлечь интерфейс», которая делает именно то, что вы описываете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...