0

Visual Studio 2008에서 Resharper 4.5를 사용하고 있습니다. 메서드 블록을 추출하려고 할 때마다 함수가 아닌 서브 루틴이 만들어집니다. 리턴 유형 옵션은 사용 불가능합니다. 누구든지 서브 루틴이 아닌 함수를 만들 수있는 방법에 대한 조언을 갖고 있습니까?Resharper 4.5 추출 방법 - 함수를 가져올 수 없습니다!

감사합니다.

답변

1

강조 표시된 코드는 반환 할 가능성이 없습니다. 강조 표시된 코드가 코드의 아래쪽에서 사용되는 변수를 설정하지 않으면 리팩토링 된 코드가 반환 할 항목이 없습니다. (이 코드를 넘어 페이지를 참조하지 않는) 반환 아무것도 예를 들어

,이 코드를 강조 표시하고 방법을 추출하면 ...

 Program p = new Program(); 
     p.DoStuff(); 

.... 이 코드의 제 2 행 ...

 Program p = new Program(); 
     p.DoStuff(); 
     p.DoMoreStuff(); 

를 강조하는 경우 ... ReSharper에서 다음 프로그램의 인스턴스 (즉, "P")을 반환하는 방법을 생성한다.

+1

변수를 선언하는 방법에 따라 달라집니다. 위의 예제에서 (VB에서) : "Dim p As New Program"을 선택하고 서브 루틴을 계속 수행합니다. "Dim p as Program = New Program"을 반환합니다. 함수. 나는 그것이 어리 석다라고 생각한다. 그러나 고마워한다! –