Отладка возвращаемого значения - PullRequest
12 голосов
/ 21 февраля 2012

Я помню, что мог видеть возвращаемое значение метода , когда я отлаживал a C ++ код в Visual Studio 6.0.Теперь мне не хватает этой функции в C # в Visual Studio 2010.
Где я могу увидеть возвращаемое значение или есть причина его не показывать?

Edit1: пример:

string GetFullName()
{
  return GetFirstName() + " " + GetLastName();
}

Когда я иду (отладчик) от строки, начинающейся с , возвращаю к следующей строке, я хотел бы видеть полное имя вОкно отладочной переменной.

Ответы [ 4 ]

8 голосов
/ 24 марта 2014

Это было добавлено в Visual Studio 2013:

Возвращаемые значения отображаются в «Autos Windows» (Debug-> Windows-> Autos), и вы также можете использовать псевдо-переменную «$ ReturnValue» в окне «Watch and / or Immediate», чтобы получить последние Возвращаемое значение функции.

http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/27/seeing-function-return-values-in-the-debugger-in-visual-studio-2013.aspx

3 голосов
/ 21 февраля 2012

Вы можете установить точку останова на строке оператора return с помощью метода.Затем щелкните правой кнопкой мыши точку останова и выберите «При попадании ...».Здесь вы можете выбрать отображение сообщения или запуск макроса.Для этого мы напечатаем сообщение, которое будет отображаться в окне вывода.Например, если у вас есть следующий код:

public double ReturnValue()
{
    var x = 3;
    var y = 4;
    //x and y can of course be non-constant vars too
    return Calculate(x, y);
}

public static double Calculate(int x, int y)
{
    return x * x + y * y;
}

Если вы установите точку останова в строке «return Calculate (x, y);», щелкните ее правой кнопкой мыши и выберите «When Hit ...» ивыберите это как сообщение:

Значение: {Calculate (x, y)}

В этом случае в окне вывода отобразится:

Значение: 25,0

Надеюсь, это поможет!

Обновление:

Это также работает для вашего примера с именами, методами:

public string GetFirst()
{
    return "Bill";
}

public string GetLast()
{
    return "Gates";
}

public string GetFull()
{
    return GetFirst() + " " + GetLast();
}

Поместите точку останова в оператор return в методе GetFull () и сделайте то же самое, что и раньше.Тело сообщения теперь выглядит так:

Полное имя: {GetFirst () + "" + GetLast ()}

И в окне вывода отобразится:

Полное имя: "Билл Гейтс"

3 голосов
/ 21 февраля 2012

См. Это: https://connect.microsoft.com/VisualStudio/feedback/details/555859/see-return-value-in-managed-code (и вы можете объявить это)

Также есть комментарий от парня, который разработал плагин для VS для поддержки этого.

Upd.Попробовал этот плагин.Отлично выглядит сейчас.

1 голос
/ 21 февраля 2012

Невозможно увидеть возвращаемое значение, см. Аналогичный связанный вопрос

Можно ли узнать возвращаемое значение перед возвратом при отладке в Visual Studio

Можносохранить результат в строковую переменную, чтобы он отображался в окне отладки.

enter image description here

class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            Console.WriteLine(p.GetFullName());
            Console.ReadLine();   
        }

        string GetFullName()
        {
            string result =GetFirstName() + " " + GetLastName();
            return result;
        }

        string GetFirstName()
        {
            string firstname = "vishwanath";
            return firstname;
        }

        string GetLastName()
        {
            string lastname = "Dalvi";
            return lastname;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...