2016-01-18 38 views
7

W VS2013 możemy wyświetlić wartość zwracaną przez metodę, sprawdzając wpis w oknie Watch pod nazwą $ReturnValue. To nie działa w VS2015.

np. Zrobiłem nową aplikację konsoli, zawierający następujący kod:

using System; 

namespace ReturnInspector 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      Console.WriteLine("Number: {0}", Method1()); 
     } 

     public static int Method1() 
     { 
      return Method2(1000);   //A 
     }         //B 

     private static int Method2(int i) 
     { 
      return i + 42; 
     } 
    } 
} 

Jeśli mogę umieścić punkt przerwania na linii //A, następnie raz pęknie, F10, aby przejść do linii //B pozycja w oknie Watch $ReturnValue pokazuje „1042 "w VS2013, ale w VS2015 to pokazuje to:

error CS0103: The name '$ReturnValue' does not exist in the current context 

Uwaga że Autos i mieszkańców okien poprawnie powiedzieć:

ReturnInspector.Program.Method2 returned 1042 

Czy ktoś wie, czy $ReturnValue w funkcji okna zegarka spadła w VS2015?

Odpowiedz

8

Upewnij się, że posiadasz w Narzędzia >> Opcje >> Debugowanie >> Użyj sprawdzonej opcji sprawdzania ekspresji C# i VB.

Od MSDN:

Musisz mieć oceniający spuścizna wyrażenie włączony $ ReturnValue być uznane (Narzędzia/Opcje/Debugging/Użyj starszego typu C# i VB ewaluatorów wyrażenie). W przeciwnym razie możesz użyć wartości $ ReturnValue1.

+0

Czym różnią się pojedyncze i podwójne **> **? @PatrickHofman –

+0

Utworzono cytat blokowy wewnątrz cytatu z innego bloku. To czasami powoduje problemy z układem i po prostu wygląda źle. –

+1

Dzięki za poprawienie btw –