문제

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

무차별 대입 방법은 Visual Studio에서 "참조 찾기"를 사용하고 결과를 수동으로 조사하여 구현에서 사용법을 분리하는 것입니다. 그러나 대규모 코드베이스의 인터페이스에는 참조됨 구현 횟수가 상대적으로 적기 때문에 시간이 많이 걸리고 오류가 발생하기 쉽습니다.

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

도움이 되었습니까?

해결책

(주석에 따라 편집 ...)

Resharper가 설치된 경우 :

Visual Studio에서 유형 이름을 마우스 오른쪽 버튼으로 클릭하고 "상속자로 이동"을 선택하십시오. 또는 유형 이름을 선택한 다음 Resharper/View/Type Hierarchy로 이동하여 새 탭을 열십시오. (메뉴는 키보드 바로 가기를 보여줍니다. 이것은 다를 수 있습니다. 그래서 내가 그것을 찾는 방법을 설명했습니다 :)

reharper가없는 경우 :

  • 당신이 사용할 수있는 반사기, 모든 유형 계층을 매우 쉽게 보여줄 수 있습니다. 유형 이름 바로 아래에는 기본 유형 및 파생 유형에 대한 확장 가능한 항목이 있습니다. 유사한 도구를 사용할 수 있습니다 Ilspy 그리고 도트 픽.
  • Resharper를 구입하십시오 - 그것은 훌륭한 도구입니다 :)

다른 팁

메소드 이름 (인터페이스의 정의 또는 다른 클래스의 구현 정의)을 마우스 오른쪽 버튼으로 클릭하고 Call Hierarchy보기보기를 선택할 수 있습니다. 통화 계층 창에는 인터페이스 메소드 구현의 모든 위치를 찾을 수있는 "구현"폴더가 있습니다.

커서를 클래스 또는 인터페이스 유형에 넣습니다

Ctrl + F12

Visual Studio 2010+

멤버 메소드를 마우스 오른쪽 버튼으로 클릭하고 통화 계층 구조보기를 선택하십시오. 구현 폴더를 확장하십시오. 메소드가 속한 인터페이스를 구현하는 모든 유형이 나와 있습니다.

enter image description here

resharper 7

인터페이스> 파생 기호로 탐색하는 인터페이스를 마우스 오른쪽 버튼으로 클릭하십시오. 나열된 기호 굵게 인터페이스에서 직접 파생하십시오. 비대가 아닌 기호는 슈퍼 클래스에서 파생됩니다.

enter image description here

Visual Studio 2015를 사용하는 사람들에게는이 멋진 확장 기능이 있습니다. 구현으로 이동하십시오. 시도 해봐.

확장자를 설치 한 후에는 인터페이스 (예 : IG Shortener)의 발생을 마우스 오른쪽 버튼으로 클릭하고 클릭 할 수 있습니다. Go To Implementation 메뉴. 인터페이스를 구현하는 클래스가 하나만 있으면 메뉴를 클릭하면 클래스로 직접 가져옵니다. 인터페이스를 구현하는 클래스가 둘 이상인 경우 모든 클래스가 나열됩니다.

Visual Studio 2015를 사용하는 경우 Visual Studio 2015 업데이트 1 RC를 설치하세요.로부터 Visual Studio 블로그:

오늘 우리는 3주 전에 출시한 업데이트 1 CTP를 기반으로 하는 Visual Studio 2015 업데이트 1 RC를 출시했습니다.여기에 설명된 대로 CTP에 도입된 기능 외에도 릴리스 후보에는 다음이 포함됩니다.

  • 구현으로 이동.많은 분들이 기다려 왔던 기능:인터페이스나 추상 메서드를 마우스 오른쪽 버튼으로 클릭하고 이 명령을 선택하여 구현을 탐색하면 됩니다.

이 기능이 VS로 내장되어 있다고 생각하지 않지만 IIRC resharper 이것을 가지고 있습니다.

인터페이스를 정기 표현식 검색 할 수 있습니다.

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

Ctrl+Shift+F 다음 창을 시작합니다.

Visual Studio Screenshot

"탐색 ..."옵션을 선호합니다. 기능 호출에 대한 커서를 사용하면 다음을 시도하십시오.

단축 키:

  1. ctrl+, (ctrl+comma)

메뉴:

  1. 메뉴 편집
  2. "탐색 ..."를 클릭하십시오.

이익:

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

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

Resharper를 사용하는 경우 alt + 끝 바로 가기는 모든 상속자를 찾는 데 도움이 될 수 있습니다.

나는 그 말을 들었다 독사 javadoc이 Java와 같이 .NET에 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top