2011-01-13 13 views
7

Cuando solía desarrollar en C++, recuerdo que Visual Studio tenía una entrada en su ventana de Autos cada vez que regresaba de una llamada de función. Esta entrada me diría qué valor fue devuelto por esa función.Valor devuelto en la ventana Autos de Visual Studio

Uno podría argumentar que si una función devuelve un valor, entonces usted debe establecer una variable a ese valor, es decir,

int i = GetRandomInt(); 

Pero como un ejemplo artificioso, supongamos que se quiere hacer esto:

CycleTushKicker(GetRandomInt()); 

En lugar de entrar en CycleTushKicker para averiguar la cantidad de lamidas que recibe mi hijo, me gustaría saber el valor tan pronto como salgo de GetRandomInt.

¿Hay alguna manera de obtener esto al usar C#?

EDITAR - siguió el consejo de @Michael Goldshetyn y presentó una sugerencia de función en Microsoft Connect. Puede colocar sus votos aquí: https://connect.microsoft.com/VisualStudio/feedback/details/636130/display-return-value-from-function-in-autos-window-for-c

+1

+1: esto siempre me ha molestado también. –

Respuesta

2

No hay forma de ver el valor de retorno de una función en el panel Autos de VS2010 al usar C#. Si desea poder ver este valor, deberá asignarlo a una variable temporal, y luego verá el valor de esta variable (al menos en compilaciones de depuración).

actualización

VS2013 now offers this functionality

+1

Creo que el enloquecedor bit es C++ muestra el valor de retorno. – user7116

+0

Acepto, esto es muy inconveniente. Es posible que desee considerar la posibilidad de presentar esto como un error en Microsoft connect, aunque es más como una característica que falta que un error. –

+0

Lo investigaré, gracias por la sugerencia. – Dave

0

Es mejor utilizar sólo una variable temporal.

Esto le permitirá ver esto en las ventanas de depuración, pero también le permitirá establecer un punto de interrupción, y pasar limpiamente sobre o por cada función individualmente.

de la siguiente manera:

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

Usted efectivamente crear exactamente el mismo código, pero es mucho más fácil de depurar.

+0

En este ejemplo particular, estaría de acuerdo, pero siempre hay ejemplos matemáticos, como 'angle = GetAngle1() + GetAngle2()', donde desea hacer F11, Shift-F11 rápidamente un par de veces para ver qué los valores individuales son Todavía es código legible, y no es necesario asignar variables temporales a cada resultado. – Dave

Cuestiones relacionadas