2013-04-05 2 views
10

는 때때로, 나는 이런 식으로 뭔가 건너 것이다 구현하는 방법이 아닌 인터페이스로 이동코드를 검색 할 때

public class Fruity 
{ 
    private IOrange _Orange; 

    public Fruity() 
    { 
     _Orange = new Orange() as IOrange; 
    } 

    public void PrepareFruit() 
    { 
     return _Orange.Peel(); 
    } 
} 

큰, 그래서 지금은 필 방법을 구현하는 방법을보고 싶어요. 방법을 마우스 오른쪽 버튼으로 클릭하면 나에게 인터페이스 스텁으로 이동하는 정의로 이동합니다.

OK, 엄격하게 말하면, private 변수가 이런 식으로 정의 된 인터페이스에 의해 정의되지만, 구현 방법은 무엇입니까?

물론 호출, 인터페이스 및 concretions의 분산 - 총 방식 인 모든 참조를 찾을 수 있습니다. 그러나 구현의 소스가이 경우에 분명하다 그래서 나는 그것이 내가 생각했을 것으로 점프 할 수 있어야한다 ... 분명히

, 때로는 잘 여기에 설명되어 모호함이있을 수 있습니다

Go to definition on concrete type

하지만 분명히 구현이 명확하면 구현으로 이동 옵션이 ​​있어야합니다.

+4

와 구현에 이동할 수 = 2015, I 돈 그것없이 내가 어떻게 작동했는지 알지 못한다.기본 IDE에서 동일한 작업을 수행하는 방법을 모르겠습니다. – NDJ

+0

전혀 명확하지 않습니다. 일치하지 않는 괄호는'Fruity' 클래스 전체를 게시하지 않았 음을 의미하므로'MangoPretendingToBeAnOrange()'에'_Orange'를 설정하는 멤버 함수가 없다는 것을 어떻게 알 수 있습니까? – hvd

+0

다음 중 중복 된 것으로 보입니다. http://stackoverflow.com/questions/4662784/visual-studio-is-there-a-way-to-navigate-to-real-implementation-of-method-behin? – nicodemus13

답변

7

Peel을 두 번 클릭하고 강조 표시하고 CTRL+,을 누르면 실제 구현을 나열하는 "navigate to symbol"창이 나타납니다. 일반적으로 두 번째 항목입니다. 타사 도구가 없어도이를 찾는 가장 빠른 방법입니다. 그리고 "모든 참조 찾기"와는 달리 메소드 정의 만 표시되며 어디서나 호출되지는 않습니다. 당신은 비주얼 스튜디오 메뉴 "보기"로 가서 "코드 정의 창"을 선택하면, 당신은 .Peel() 클릭하면

+0

'Peel' 방법은 모든 다른 과일, 그리고 "Navigate To"는 내가 아는 한'IOrange'를 구현하는 클래스로 제한되지 않습니다. +1 어쨌든, 메서드 이름이 합리적인 경우,이 큰 문제가 안됩니다. – hvd

+0

실제로 이상적은 아니지만 제 3 자 도구가 없으면 최상의 옵션 일 것입니다. – PhonicUK

2

, 당신은 .Peel()의 구현 (이 항상 작동하지만 그것을 시도하고 볼 수 없습니다) 표시 될 수 .

1

물론 Visual Studio에 이미 존재합니다! 그것은 그 어느 때보 다 거기에 있습니다.

코드 (Ex : 속성)를 마우스 오른쪽 버튼으로 클릭하고 "View Call Hierarchy"를 선택하십시오. Call Hierarchy 창에서 Implements 폴더를 선택하십시오.

있습니다. 왜 Resharper ??? 물론 resharper에서 인터페이스로 직접 질의를 허용하는 구현으로 복잡하지만 복잡하지는 않습니다.하지만 속성이나 메서드 만 있으면 충분합니다. 예 : -을 구현하는 클래스 말하고, 따라서 전체 인터페이스한다 (인터페이스 클래스 내부 또는 아무 곳)과 "보기 호출 계층 구조"를 선택

public interface IModule 
{ 
int Count { get; set; } 
} 

public class Module : Imodule 
{ 
    public int Count {get; set;} 
} 

public class Module2 : Imodule 
{ 
    public int Count {get; set;} 
} 

오른쪽 Count 속성을 클릭하십시오.

처음에는 우리 모두가 Resharper를 좋아합니다. 시간이 지나면, 우리 모두는 그것을 싫어합니다!

+0

네, 이건 "Find All References"보다 조금 낫지 만, 내가 찾고있는 일종의 "Go To Definition"의 직접성이 부족합니다 ... –

0

> 당신은이 "구현에 가서"이 ReSharper에서의 시험 버전 및 기타 물건의 무리를 다운로드 할 가치가있을 수도 바로 가기 키 Ctrl + F12

관련 문제