Возвращаемое значение отладки
Я помню, что я видел возвращаемое значение метода, когда я отлаживать код С++ в Visual Studio 6.0.
Теперь я пропускаю эту функцию в С# в Visual Studio 2010.
Где я могу увидеть возвращаемое значение или есть причина не показывать его?
Edit1:
Пример:
string GetFullName()
{
return GetFirstName() + " " + GetLastName();
}
Когда я ступаю (отладчик) из строки, начиная с возврата к следующей строке, я хотел бы видеть полное имя в окне переменной отладки.
Ответы
Ответ 1
Это было добавлено в Visual Studio 2013:
Возвращаемое значение отображается в "Autos Windows" (Debug- > Windows- > Autos), и вы также можете использовать псевдо-переменную "$ ReturnValue" в окне "Часы" и/или "Немедленное" для получения последнего Возвращает значение функции.
http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/27/seeing-function-return-values-in-the-debugger-in-visual-studio-2013.aspx
Ответ 2
Смотрите это: https://connect.microsoft.com/VisualStudio/feedback/details/555859/see-return-value-in-managed-code (и вы можете его перенести)
Также есть комментарий от парня, который разработал плагин для VS, чтобы поддержать это.
Upd. Пробовал этот плагин. Отлично выглядит сейчас.
Ответ 3
Вы можете установить точку останова в строке оператора return с помощью метода. Затем щелкните правой кнопкой мыши точку останова и выберите "When Hit...". Здесь вы можете выбрать отображение сообщения или запуск макроса. Для этого мы напечатаем сообщение, которое будет отображаться в окне вывода. Например, если у вас есть следующий код:
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
Надеюсь, это поможет!
Update:
Это также работает для вашего примера с именами, методами:
public string GetFirst()
{
return "Bill";
}
public string GetLast()
{
return "Gates";
}
public string GetFull()
{
return GetFirst() + " " + GetLast();
}
Поместите точку останова в оператор return в методе GetFull() и сделайте то же самое, что и раньше. Тело сообщения теперь выглядит так:
Полное имя: {GetFirst() + "" + GetLast()}
И окно вывода отобразит:
Полное имя: "Билл Гейтс"
Ответ 4
Вы не можете увидеть возвращаемое значение, см. аналогичный связанный вопрос
Могу ли я узнать возвращаемое значение перед возвратом во время отладки в 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;
}
}