una que programacion interfaz interfaces implementacion declaracion declara cómo caracteristicas c# visual-studio intellisense interface-implementation

c# - que - ¿Cómo se puede encontrar rápidamente la implementación(es) del método de una interfaz?



implementacion de interfaces c# (6)

Alt-End hará esto en ReSharper, creo.

Esta pregunta ya tiene una respuesta aquí:

¿Existe una manera rápida de encontrar todas las implementaciones de, no referencias a, el método / propiedad / etc de una interfaz? Aquí hay un código de muestra:

public class SomeClass : IBaseClass { public Int32 GetInt() { return 1; } } public interface IBaseClass { public Int32 GetInt(); } public class SomeOtherClass { IBaseClass _someClass; private TestMethod() { _someClass = new SomeClass(); _someClass.GetInt(); } }

Quiero acceder rápidamente a SomeClass.GetInt () mientras reviso SomeOtherClass.TestMethod (). Si hago clic derecho en _someClass.GetInt () y hago clic en ''Ir a definición'', me lleva a la interfaz. Si hago clic en ''Buscar todas las referencias'', podría ver una lista de todos los usos ... no solo las clases que implementan el método GetInt ().

¿Hay una forma más rápida de encontrar esto? ¿Algún consejo de otros desarrolladores? Estamos usando DI para la mayoría de nuestras dependencias, lo que significa que el rastreo a través de un código profundamente anidado demora para siempre .


Como no me gusta usar el mouse mientras codigo, usualmente

  • mover el cursor sobre el método
  • escriba ctrl + k clrl + t para abrir la ventana de Jerarquía de llamadas
  • mover hacia abajo al nodo Implementos.
  • escriba Volver para ir a la implementación seleccionada

AFAIK esta es la forma más rápida de encontrar la implementación de un método, sin ReSharper.

(Por cierto: puede usar el mismo sistema para pasar de una implementación de método de clase a la declaración de interfaz correspondiente: simplemente seleccione la raíz)


R # tiene una opción Ir a implementación en el menú emergente, que es realmente útil para eso.


Si su interfaz está en la misma biblioteca que su modelo concreto al que normalmente querrá navegar, podría agregar un ''alias de uso'' al objeto concreto. ''Usings'' son ayudantes de todos modos, y esto ayuda.

using System; using PrimaryImplementation = YourNamespace.YourConcreteObject; public interface IYourInterface{ }

Cuando te llevan a la interfaz, tienes una manera rápida (y sucia) de llegar a la implementación principal de tu interfaz. F12-> F12!


Sin ReSharper, la mejor manera de hacerlo es:

Buscar en archivos (Ctrl + Shift + F) Buscar qué: "class * ISomeClass" Buscar opciones: "Usar comodines"

Esto encontrará toda la implementación y podrá buscar su función en una implementación concreta.