75 votes

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

J'ai une classe comme :

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

Ce n'est qu'un exemple de classe. Je souhaite générer l'interface à partir de celui-ci. Comme, 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 juste curieux de savoir, existe-t-il une autre méthode simple à suivre pour y parvenir? Si ce n'est pas clair, laissez un commentaire.

Merci.

142voto

ken2k Points 24640

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

Dans le fichier de classe cible : Clic droit > Refactor > Extraire l'interface...

Exemple

entrez la description de l'image ici

alors

entrez la description de l'image ici

55voto

cdie Points 1440

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

Assurez-vous de placer le curseur quelque part dans le nom de la classe dont vous souhaitez extraire l'interface. Sinon, il affiche "aucune action rapide disponible ici".

Remarque : ceci 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.

14voto

Matthias Meid Points 8473

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

4voto

Nicholas Petersen Points 832

Dans Visual Studio 2015, cliquez sur le curseur ou cliquez avec le bouton droit sur le nom de la classe, puis sélectionnez Actions rapides (ou appuyez sur Ctrl - . ) et l'option "Extraire l'interface" s'affiche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X