192 votes

Visual Studio : Existe-t-il un moyen pour accéder à une véritable implémentation de méthode derrière une interface ?

Dans Visual Studio, lorsque vous cliquez droit sur un appel de méthode, vous allez à la mise en œuvre de cette méthode à l'intérieur d'une classe, sauf si vous accédez à cette méthode par le biais d'une interface: dans ce cas, vous accédez à l'interface de la méthode de la mise en œuvre effective.

Est-il un moyen / conseils (touche de raccourci ou quoi que ce soit) pour accéder à cette mise en œuvre effective ? Sinon, vous êtes coincé à ajouter un commentaire juste pour se rappeler où vous l'avez fait mettre en œuvre, c'est vraiment pas productive et source d'erreurs !

Mise à jour: réponses intéressantes, mais je ne suis pas vraiment satisfaite car tous sont lourdes. Je vais donner un exemple précis:

        IInterface iInterface = someObject;                        
        iInterface.someMethod();

En fait, si Visual Studio était juste un peu intelligent de regarder juste une ligne au-dessus de l'appel de la méthode, il serait de voir où est l'objet réel est. Et qui pourrais me sauver beaucoup de frappes et d'éviter d'utiliser "rechercher toutes les références" et puis il analyse les lignes avec mes yeux fatigués de voir la ligne qui contient la bonne :)

274voto

MajorRefactoring Points 541

Je ne les suivants:

1) clic Droit sur l'appel de la méthode et cliquez sur "Aller à la définition de" (ou il suffit de mettre le curseur dessus et cliquez la touche F12). Qui vous mènera à la déclaration d'interface

2) clic Droit sur l'interface de déclaration de méthode et cliquez sur "Affichage de la hiérarchie" (ou raccourci Ctrl+K, Ctrl+T)

3) Développer la "Implémente x" dossier qui sera ensuite vous montrer toutes les implémentations de la méthode. Cliquez sur l'un d'y aller.

Relativement facile et rapide. Fâcheusement bien qu'il ne semble pas être l'équivalent de l'interface elle-même.

49voto

Rolf Kristensen Points 1326

Avec VS2013, on peut placer le curseur sur la méthode et permet de naviguer... (CTRL +), et il affichera tous les emplacements où le nom est déclaré. Ne fonctionne pas bien si différentes interfaces utilise les mêmes noms de méthode.

18voto

280Z28 Points 49515

J'ai créé une extension pour Visual Studio 2010 et Visual Studio 2012 appelé Héritage de la Marge pour fournir cette fonctionnalité spécifique, ainsi que de donner une indication claire lorsqu'une méthode met en œuvre une méthode d'interface en raison d'une correspondance de signature. Dans la version actuelle, vous pouvez faire un clic droit sur n'importe quel glyphe pour obtenir un menu pour naviguer.

L'Héritage De La Marge À La Galerie Visual Studio

Screenshot

15voto

Phil Carson Points 399

Faites un clic droit puis « Trouver toutes les références ».

Cela permet d’afficher la ligne de code pour tous les endroits où la méthode est utilisée notamment la déclaration de l’interface et les implémentations de la méthode d’interface. Vous pouvez ensuite cliquer sur la ligne pour accéder à l’emplacement du code.

8voto

Robaticus Points 14665

Selon la version de Visual Studio que vous avez, je vais le dire de façon conditionnelle "oui".

Je suis actuellement en exploitation sur Ultime, et n'ont pas d'autres versions pour vérifier cela. Cela dit, dans Ultime, vous pouvez utiliser l'Architecture d'Explorer pour trouver des implémentations. C'est un peu plus complexe que le droit sur la méthode, mais voici comment cela fonctionne.

  • Aller à l' View->Architecture Explorer (ou CTRL-W, N)
  • Cliquez sur la Classe de la Vue et de trouver l'espace de noms qui contient votre interface dans la liste qui s'ouvre.
  • À la droite de l'espace de noms de la liste, est à la verticale", qui, dit - Types. Cliquez sur ce
  • Sélectionnez Interfaces
  • Choisissez votre interface de la liste
  • Une verticale", qui, dit - Members apparaît alors à droite. Cliquez sur ce bouton
  • Choisissez Implemented by (en vertu de l' Inbound Navigation) et qui fournira une liste de mises en œuvre de votre interface.
  • En Double-cliquant sur l'application va vous prendre pour la classe.

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