IT박스

인터페이스의 모든 구현을 어떻게 찾습니까?

itboxs 2020. 11. 26. 08:04
반응형

인터페이스의 모든 구현을 어떻게 찾습니까?


C #으로 정의 된 인터페이스가 있다고 가정합니다. 인터페이스 구현을 제공하는 모든 클래스를 찾는 가장 쉬운 방법은 무엇입니까?

무차별 대입 방법은 Visual Studio에서 "참조 찾기"를 사용하고 결과를 수동으로 검토하여 구현에서 사용법을 분리하는 것이지만, 상대적으로 적은 구현으로 많이 참조 되는 대규모 코드베이스의 인터페이스의 경우 에는 다음과 같이 할 수 있습니다. 시간이 많이 걸리고 오류가 발생하기 쉽습니다.

Java에서 코드베이스에서 javadoc을 실행하면 (개인 클래스를 포함하기 위해 -private 옵션을 사용) 인터페이스에 대한 문서 페이지 (예 : Comparable )가 생성됩니다. 여기에는 인터페이스와 하위 인터페이스에 대한 모든 구현 클래스가 포함됩니다. 하위 인터페이스의 구현 클래스를 포함합니다. 이들은 나열된 하위 인터페이스로 드릴 다운하여 비교적 쉽게 확인할 수 있습니다. 내가 찾고있는 것은이 기능이지만 C # 및 Visual Studio가 있습니다.


(댓글에 따라 편집 ...)

ReSharper가 설치된 경우 :

Visual Studio에서 형식 이름을 마우스 오른쪽 단추로 클릭하고 "상속자로 이동"을 선택합니다. 또는 유형 이름을 선택한 다음 ReSharper / View / Type Hierarchy로 이동하여 새 탭을 엽니 다. (메뉴에 키보드 단축키가 표시됩니다. 이는 다를 수 있으므로 찾는 방법을 설명했습니다.)

ReSharper가없는 경우 :

  • 모든 유형 계층을 매우 쉽게 표시 할 수있는 Reflector 를 사용할 수 있습니다 . 유형 이름 바로 아래에는 기본 유형 및 파생 유형에 대한 확장 가능한 항목이 있습니다. ILSpydotPeek 와 같은 유사한 도구를 사용할 수 있습니다 .
  • ReSharper 구매-훌륭한 도구입니다. :)

메서드 이름 (인터페이스의 정의 또는 다른 클래스의 구현)을 마우스 오른쪽 단추로 클릭하고 View Call Hierarchy를 선택할 수 있습니다. Call Hierarchy 창에는 인터페이스 메소드 구현의 모든 위치를 찾을 수있는 "Implements"폴더가 있습니다.


클래스 또는 인터페이스 유형에 커서를 놓고

Ctrl + F12


Visual Studio 2010+ 사용

멤버 메서드를 마우스 오른쪽 단추로 클릭하고 호출 계층보기를 선택합니다. Implements 폴더를 확장합니다. 여기에는 메서드가 속한 인터페이스를 구현하는 모든 유형이 나열됩니다.

여기에 이미지 설명 입력

Resharper 7 사용

인터페이스> 탐색> 파생 기호를 마우스 오른쪽 단추로 클릭하십시오. 굵게 표시된 기호 는 인터페이스에서 직접 파생됩니다. 굵게 표시되지 않은 기호는 수퍼 클래스에서 파생됩니다.

여기에 이미지 설명 입력


For those using Visual Studio 2015, there is this awesome extension called Go To Implementation. Give it a try.

Once you've installed the extension, you can just right click at any occurrences of the interface (e.g. IUrlShortener) and click on Go To Implementation menu. If you only have one class that implements the interface, clicking the menu will bring you directly to the class. If you have more than one class that implements the interface, it will list all the classes.


For those using Visual Studio 2015, install Visual Studio 2015 Update 1 RC. From the Visual Studio blog:

Today we released Visual Studio 2015 Update 1 RC, which builds on the Update 1 CTP we released three weeks ago. In addition to the features introduced in the CTP as described here, the Release Candidate includes the following:

  • Go To Implementation. The feature many of you have been waiting for: just right-click on an interface or abstract method and select this command to navigate to the implementation.

I don't think this functionality is inbuilt into VS but IIRC Resharper has this.


You could do a regular expression search for the interface.

:(\ *[^},]+,)*\ *IMyInterfaceName

CTRL+SHIFT+F launches the following window:

Visual Studio 스크린 샷


I prefer the "Navigate To..." option. With your cursor on the function call, try the following:

Shortcut Key:

  1. Ctrl+, (Ctrl+comma)

Menu:

  1. Edit Menu
  2. Click "Navigate To..."

Benefits:

  • "모든 참조 찾기"와 같은 모든 참조를 표시하지 않습니다.
  • 구현의 "유형"을 표시하므로 인터페이스가 무엇인지 확인할 수 있습니다.

정의를 포함한 모든 참조를 표시하려면 Shift + F12를 사용하십시오.


resharper ALT + END 단축키 를 사용하면 모든 상속자를 찾는 데 도움이 될 수 있습니다.


javadoc이 java에 대한 것처럼 doxygen 이 .Net에 있다고 (자신이 경험하지 않음) 말하는 것을 들었습니다 .

참고 URL : https://stackoverflow.com/questions/620376/how-do-you-find-all-implementations-of-an-interface

반응형