2012-01-17 5 views
9

에 할당하지 않고 반환 값을 검사 :내가 냈다 코드를 다음 한 변수

... 
var tpc = new ThirtPartyClass(); 

tpc.ExecuteCommand(); 
tpc.ExecuteCommand(); 
... 

ExecuteCommand를() 메소드는 어떤 정보가 int 값을 반환합니다. 디버깅을 위해이 반환 값을 알고 싶습니다. 하지만 결과에 변수 (var result = tpc.ExecuteCommand())를 할당하고 싶지는 않습니다.

임시 변수에 할당하지 않고이 반환 값을 검사, 디버깅하는 동안 2010 가능성으로 VisualStudio에 있습니까? 제안

편집에 미리

감사 : 마지막으로,이 기능은 VS2013

답변

8

에 추가되었습니다 당신은 할 수 VS2010에서 IntelliTrace로, 다음 검사는 "보기를 호출"로 전환하여 자동차 창

그러나조차없이

enter image description here이 그것에 대해 걱정하지 마십시오; 변수를 사용하지 않으면 (일시 중지되었을 때 디버거를 살펴 보는 것만 제외하고) 릴리스 빌드에서 제거되고 "팝"으로 바뀝니다 (반환을받지 않으면 얻은 결과입니다) 가치).

그래서 :

.method private hidebysig static void Main() cil managed 
{ 
    .entrypoint 
    .maxstack 8 
    L_0000: call int32 Program::SomeMethod() 
    L_0005: pop 
    L_0006: ret 
} 

참고없는 .locals없이 stloc :

static void Main() 
{ 
    int i = SomeMethod(); 
} 

는 다음과 같이 컴파일합니다. ReSharper에서 들어

는 사용

// ReSharper disable UnusedVariable 
    int i = SomeMethod(); 
// ReSharper restore UnusedVariable 
+0

당신이 옳다 :-). 내 유일한 문제는 resharper가 '로컬 변수가 사용되지 않습니다'라는 코드와 같은 종류의 코드를 좋아하지 않는다는 것입니다. 그리고 나는 많은 경우에 도움이되기 때문에 이런 종류의 경고를 억제하고 싶지 않다. ... – rhe1980

+1

디버깅을 시작하기 전에 여러 번 할당 된 적이 없기를 바랬다. 지역 변수 등으로 나타나면 좋을 것입니다. R 번호가있는 경우 rhe1980 @ –

+1

은 내가 옵션 "이 ** 여기 **을 적용하지 않는다"궁금해 ... 편집 : 그것은 않습니다 - 업데이트를 참조하십시오 @George –

0

당신은 시계를 사용하거나 디버깅하는 동안 직접 실행 창을 사용할 수 있습니다. 직접 실행 창에 코드를 복사하여 디버깅하는 동안 코드를 실행하여 반환되는 내용을 확인할 수 있습니다. 그러나 반환 값을 얻기 위해 코드를 다시 실행합니다. 당신이 BugAid를 사용하는 경우 여기에 이미지를 볼 때

+6

그냥 이걸 추가하면,이 방법은 호출되는 메소드가 멱등수라고 가정합니다. 여분의 부작용도 염두에 두십시오. – Clafou

2

AFAICT, 그것은 반환 값을 표시 할 수 있습니다 :

Return value