2011-01-13 4 views
7

Kiedy rozwijałem się w C++, pamiętam, że Visual Studio miał wpis w swoim oknie autos po powrocie z wywołania funkcji. Ten wpis powie mi, jaka wartość została zwrócona z tej funkcji.Wartość zwracana w oknie Autos programu Visual Studio

Można by argumentować, że jeśli funkcja zwraca wartość, to należy ustawić zmienną do tej wartości, tj

int i = GetRandomInt(); 

Ale jako contrived przykład, załóżmy, że chciałem to zrobić:

CycleTushKicker(GetRandomInt()); 

Zamiast wkraczać w numer CycleTushKicker, aby dowiedzieć się, ile luk ma moje dziecko, chciałbym poznać wartość, gdy tylko wyjdę z GetRandomInt.

Czy istnieje sposób, aby uzyskać to przy użyciu C#?

EDYCJA - następująca po poradniku Michaela Goldshetyna i zawierająca sugestię dotyczącą funkcji w programie Microsoft Connect. Możesz oddać swój głos tutaj: https://connect.microsoft.com/VisualStudio/feedback/details/636130/display-return-value-from-function-in-autos-window-for-c

+1

+1: zawsze mi to przeszkadzało. –

Odpowiedz

2

Nie ma możliwości wyświetlenia wartości zwracanej przez funkcję w panelu automatycznego VS2010 podczas korzystania z C#. Jeśli chcesz zobaczyć tę wartość, musisz przypisać ją do zmiennej tymczasowej, a następnie zobaczysz wartość tej zmiennej (przynajmniej w kompilacjach debugujących).

Aktualizacja

VS2013 now offers this functionality

+1

Myślę, że nieco denerwujące jest to, że C++ pokazuje wartość zwracaną. – user7116

+0

Zgadzam się, to bardzo niewygodne. Możesz rozważyć zgłoszenie tego błędu jako błędu w łączu Microsoft, chociaż jest to raczej brak funkcji niż błąd. –

+0

Zajmę się tym, dzięki za sugestię. – Dave

0

Lepiej jest po prostu użyć zmiennej tymczasowej.

Umożliwia to zobaczenie tego w oknach debugowania, ale także pozwala ustawić punkt przerwania i przejść krok po kroku przez poszczególne funkcje.

w następujący sposób:

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

można skutecznie tworzyć dokładnie ten sam kod, ale jest to o wiele prostsze do debugowania.

+0

W tym konkretnym przykładzie zgadzam się, ale zawsze są przykłady matematyczne, takie jak 'angle = GetAngle1() + GetAngle2()', gdzie chcesz zrobić F11, Shift-F11 szybko kilka razy, aby zobaczyć, co poszczególne wartości są. Jest to nadal czytelny kod i nie jest konieczne przypisywanie zmiennych tymczasowych do każdego wyniku. – Dave