문제

제거 메서드 리팩토링을 수행할 수 있는 Visual Studio 추가 기능이 있나요?
다음과 같은 방법이 있다고 가정합니다.

Result DoSomething(parameters)  
{  
    return ComputeResult(parameters);  
}  

또는 Result가 무효인 변형입니다.

리팩토링의 목적은 DoSomething에 대한 모든 호출을 ComputeResult에 대한 호출 또는 ComputeResult가 메서드 호출이 아닌 경우 매개 변수를 사용하는 표현식으로 바꾸는 것입니다.

도움이 되었습니까?

해결책

질문을 이해하면 Resharper는 이 '인라인 메소드'를 호출합니다. Ctrl 키 - 아르 자형 +

다른 팁

나는 가장 간단한 방법으로 할 것입니다:

  1. ComputeResult 메서드의 이름을 ComputeResultX로 바꿉니다.
  2. DoSomething 메서드의 이름을 ComputeResult로 바꿉니다.
  3. DoSomething 메서드 제거(현재는 ComputeResult임)
  4. ComputeResultX 메서드의 이름을 다시 ComputeResult로 바꿉니다.

어쩌면 VS는 마지막 이름 변경으로 인해 약간의 충돌을 보일 수도 있지만 무시하십시오.

"이름 바꾸기"란 다음을 의미합니다.메서드 이름을 덮어쓴 후 드롭다운(Shift+Alt+F10)을 사용하고 "이름 바꾸기"를 선택합니다.모든 항목이 새 이름으로 대체됩니다.

Visual Studio 2005 및 2008에 추가 리팩터링 옵션을 추가할 수 있는 몇 가지 제품이 있으며, 그 중 더 나은 제품은 다음과 같습니다. 리팩터링!찬성 그리고 리샤퍼.

제거 방법에 관해서는 이 작업을 점진적으로 수행하는 방법에 대한 설명이 표준 리팩토링 책에 있습니다.

개인적으로 저는 다음과 같은 패턴을 따릅니다(각 단계 사이에 단위 테스트 컴파일 및 실행이 발생한다고 가정).

  1. 새 방법 만들기
  2. 이전 메서드의 본문을 제거하고 새 메서드를 호출하도록 변경합니다.
  3. 이전 메서드에 대한 모든 참조를 검색하고(메서드 이름을 마우스 오른쪽 버튼으로 클릭하고 "모든 참조 찾기" 선택) 새 메서드에 대한 호출로 변경합니다.
  4. 이전 메서드를 [Obsolete]로 표시합니다(이제 호출하면 빌드 중에 경고로 표시됨).
  5. 이전 메소드 삭제

그런 리팩토링에 관해서라면 시도해 보세요 ReSharper.

메서드 이름을 마우스 오른쪽 버튼으로 클릭하고 "사용 위치 찾기"를 클릭한 다음 참조를 찾을 수 없을 때까지 리팩터링하면 됩니다.

그리고 dlamblin이 언급했듯이 최신 버전의 ReSharper에는 메소드를 인라인할 수 있는 가능성이 있습니다.그러면 필요한 작업이 수행됩니다.

ReSharper 확실히 리팩토링을 위해 필요한 VS 2008 플러그인입니다.그러나 이러한 형태의 리팩토링을 한 단계로 수행하지는 않습니다.Refactor->DoSomething의 이름을 ComputeResult로 변경하고 실제 ComputeResult와의 충돌을 무시해야 합니다.그런 다음 DoSomething 정의를 삭제합니다.거의 한 단계입니다.

하지만 어쩌면 그럴 수도 있지 한걸음 해봐.내가 올바르게 읽었다면.

Visual Studio에서 메서드 이름을 마우스 오른쪽 버튼으로 클릭하고 "모든 참조 찾기"를 클릭할 수도 있습니다.

나는 개인적으로 CTRL 키 + 옮기다 + 시간 에게 Find & Replace

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