2011-01-13 18 views
7

Quando sviluppavo in C++, ricordo che Visual Studio aveva una voce nella finestra Autos ogni volta che ritornava da una chiamata di funzione. Questa voce mi diceva quale valore è stato restituito da tale funzione.Valore restituito nella finestra di Auto di Visual Studio

Si potrebbe sostenere che se una funzione restituisce un valore, allora si dovrebbe impostare una variabile a quel valore, cioè

int i = GetRandomInt(); 

Ma come un esempio forzato, supponiamo ho voluto fare questo:

CycleTushKicker(GetRandomInt()); 

Invece di entrare in CycleTushKicker per capire quante leccature mi capita, vorrei solo sapere il valore non appena esco GetRandomInt.

C'è un modo per ottenere questo quando si utilizza C#?

EDIT - seguito dal consiglio di @Michael Goldshetyn e presentato un suggerimento di funzionalità su Microsoft Connect. Puoi mettere i tuoi voti qui: https://connect.microsoft.com/VisualStudio/feedback/details/636130/display-return-value-from-function-in-autos-window-for-c

+1

+1: questo mi ha sempre infastidito. –

risposta

2

Non c'è modo di vedere il valore di ritorno di una funzione nel riquadro Autos di VS2010 quando si usa C#. Se vuoi essere in grado di vedere questo valore, dovrai assegnarlo a una variabile temporanea, e poi vedrai il valore di questa variabile (almeno nelle build di debug).

Aggiornamento

VS2013 now offers this functionality

+1

Penso che il bit esasperante sia C++ che mostra il valore restituito. – user7116

+0

Sono d'accordo, questo è molto sconveniente. Puoi prendere in considerazione la possibilità di archiviarlo come un bug su Microsoft connect, sebbene sia più simile a una funzionalità mancante di un bug. –

+0

Lo esaminerò, grazie per il suggerimento. – Dave

0

E 'meglio utilizzare solo una variabile temporanea.

Ciò consentirà di visualizzarlo nelle finestre di debug, ma anche di impostare un punto di interruzione e di passare in modo pulito sopra o attraverso ciascuna funzione individualmente.

Facendo la seguente:

var randomInt = GetRandomInt(); 
CycleTushKicker(randomInt); 

Si crea in modo efficace esattamente lo stesso codice, ma è molto più semplice per eseguire il debug.

+0

In questo particolare esempio, sarei d'accordo, ma ci sono sempre esempi di matematica, come 'angle = GetAngle1() + GetAngle2()', dove vuoi fare F11, Shift-F11 velocemente un paio di volte per vedere cosa i singoli valori sono. È ancora un codice leggibile e non è necessario assegnare variabili temporanee a ciascun risultato. – Dave

Problemi correlati