web-dev-qa-db-fra.com

Générer une interface à partir d'une classe existante

J'ai un cours comme:

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

C'est juste un exemple de classe. Je souhaite générer une interface à partir de celui-ci. MyClass implémente l'interface IMyClass. Je souhaite que la sortie soit

public Interface IMyClass
{
   string Name { get; }

   int IdNumber { get; set; }

   void GenerateNumber();
}

et 

MyClass : IMyClass
{

}

Cela peut être fait manuellement, mais j'étais simplement curieux de savoir s'il existe une autre méthode simple à suivre pour y parvenir. Si ce n'est pas clair, laissez un commentaire.

Merci.

44
Sandy

Oui, vous pouvez extraire une interface d'une classe à l'aide de Visual Studio:

Dans le fichier de classe cible: Clic droit > Refactor > Extract Interface ...

Exemple

enter image description here

puis

enter image description here

93
ken2k

Dans Visual Studio 2015/2017/2019, cela se trouve dans le menu Actions rapides (Ctrl+ période .)

Veillez à placer le curseur quelque part dans le nom de la classe à partir de laquelle vous voulez extraire l'interface. Sinon, il indique "pas d'action rapide disponible ici".

Remarque: cela n'est possible que si vous pouvez réellement extraire une interface. Par exemple, si votre classe n'a que des méthodes statiques, cela ne fonctionnera pas.

36
cdie

Dans Visual Studio 2010, vous pouvez cliquer avec le bouton droit de la souris sur MyClass et choisir Refactor, `Extract Interface ..." (Ctrl+RI). Cela vous donne une fenêtre pour vérifier les membres à extraire.

12
Matthias Meid

Dans Visual Studio 2015, cliquez sur le curseur ou faites un clic droit sur le nom de la classe, puis sélectionnez Actions rapides (ou appuyez sur Ctrl-.) et l’option "Extraire l’interface" apparaît.

3
Nicholas Petersen

Prenez des notes s'il vous plaît. si votre classe a un "statique". vous ne pourrez pas extraire d'interface. afin de supprimer ce premier avant d'extraire à l'interface

0
silentgut

Ctrl+. apparaissait 'générant des substitutions ...' et rien ne se passait au-delà de cela, alors j'ai cherché 'refactor' dans la boîte de recherche de lancement rapide. Les résultats ont Edit -> Refactor -> Extract Interface (Ctrl+RCtrl+I) option.

En espérant que ce conseil puisse aussi aider quelqu'un d'autre. J'utilise VS 2017 EE.

0
Mandeep Janjua

Dans le menu de refactorisation de visual studio, il existe une option "extraire l'interface" qui fait exactement ce que vous décrivez.

0
Ben Robinson