2012-01-17 17 views
9

atamak olmaksızın dönüş değeri kontrol edin:I snipped kodu aşağıdakilere sahip değişken

... 
var tpc = new ThirtPartyClass(); 

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

ExecuteCommand() yöntemi bazı bilgileri int değer geri gönderir. Hata ayıklama için bu dönüş değerlerini bilmek istiyorum. Ama sonucu bir değişkene atamak istemiyorum (var sonuç = tpc.ExecuteCommand()).

VisualStudio 2010'da hata ayıklama sırasında bu dönüş değerini geçici bir değişkene atamadan denetlemek mümkün mü? Önerileriniz

düzenlemek için şimdiden

Teşekkür: Son olarak, bu fonksiyon VS2013

cevap

8

eklendi Sen bunu yapabilir VS2010 içinde IntelliTrace ile, daha sonra kontrol "Görünüm Aramalar" na geçerek Arabalar penceresi:

Ama bu bile olmadan

enter image description here, bu konuda endişelenmeyin; değişkeni kullanmazsanız (duraklatıldığında hata ayıklayıcısına bakarak hariç), daha sonra bir sürüm yapısında kaldırılır ve yalnızca bir "pop" ile değiştirilir (dönüşü yakalamazsanız ne alırsınız ilk etapta değer).

Yani:

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

nota hiçbir .locals ve hiçbir stloc:

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

olarak derler. ReSharper için

kullanın:

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

haklısınız :-). Tek sorunum, yeniden paylaşımcı 'yerel değişken asla kullanılmaz' ile bu tür bir kodu sevmez. Ve bu tür bir uyarıyı bastırmak istemiyorum, çünkü çoğu durumda bu yardımcı olur ... – rhe1980

+1

Çok fazla kez bir şey atamadım ve hata ayıklamaya başlamadan önce olmuştu. Yerel değişkenlerle veya bir şeyle ortaya çıktığında hoş olurdu. –

+1

@ rhe1980 r # bir "bunu uygulamayın ** buradaki **" seçeneği ... düzenleme: bunu yapar - bkz. Düzenle –

0

Sen bir saat kullanın veya ayıklama sırasında anında pencereyi kullanabilirsiniz. Ne döndüğünü görmek için hata ayıklama sırasında çalıştırmak için kodu anında pencereye kopyalayabilirsiniz. Bununla birlikte, dönüş değerini almak için kodu tekrar çalıştırır. Eğer BugAid kullanıyorsanız burada görüntü görüldüğü gibi

+6

Sadece buna eklemek için, bu şekilde yapmak, çağrılan yöntemin idempotent olduğunu varsayar. Ekstra aramanın muhtemel yan etkilerine dikkat edin. – Clafou

2

AFAICT dönüş değerlerini gösterebilir:

Return value

İlgili konular