如何在Visual Studio调试中显示条件的结果
本文关键字:显示 条件 结果 调试 Visual Studio | 更新日期: 2023-09-27 17:54:27
如何让我在调试时在visual studio中显示条件的结果?假设我的代码是这样的:
If a > b andalso c > b andalso d < y then
如果我跳过,我无法看到三个条件中哪个为假。有办法能做到吗?
您可以使用debugconsole编写这样的结果:
bool ab = a > b;
bool cb = c > b;
bool dy = d < y;
System.Diagnostics.Debug.WriteLine("a > b = " + ab + ", "c > b = " cb + ", d < y = " + dy");
if (ab && cd && dy)
{
//Your code here
}
这3个结果显示在调试控制台中,如
a> b = true, c> b = false, d
可选,可以添加第四个布尔值,如
bool result = ab && cd && dy;
您可以使用即时窗口并复制粘贴单个条件或其他任何您喜欢的内容。这样,您就不需要更改代码。
如果你想写一段代码,这是最好的调试,这将是可怕的编码方式,例如,最好的方式重写上面的调试如下:
bool isValid = false;
isValid = isValid && a > b
isValid = isValid && c > b
isValid = isValid && d < y
除非在你的程序中有一定的逻辑来找到哪个部分是失败的…这种方法是毫无意义的,如果您将每个部分添加到手表并验证它就更好了,整体调试不是编写代码的目的。
如果我对代码有问题,我会这样重写它,以便它清晰且易于调试。
Dim aGTb As Boolean = a > b
Dim cGTb As Boolean = c > b
Dim dLTy As Boolean = d < y
If aGTb AndAlso cGTb AndAlso dLTy Then
End If
您可以使用System.Diagnostics
并使用Debugger.Break()
在这行停止调试器,并查看调试器输出,
像这样的示例代码:
:
using System;
using System.Diagnostics;
class Test
{
static volatile int a = a, b = 2, c = 3, d = 4, y = 5;
static void Main(string[] args)
{
Debugger.Break();
Debug.WriteLine("a > b:{0}", a > b);
Debug.WriteLine("c > b:{0}", c > b);
Debug.WriteLine("d < y:{0}", d < y);
Debug.WriteLine("a > b && c > b && d < y:{0}", a > b && c > b && d < y);
if (a > b && c > b && d < y)
{
Console.WriteLine("...");
}
}
}
或在VB中:
Imports System
Imports System.Diagnostics
Module Module1
Sub Main()
Dim a As Integer = 1, b As Integer = 2, c As Integer = 3, d As Integer = 4, y As Integer = 5
Debugger.Break()
Debug.WriteLine("a > b:{0}", a > b)
Debug.WriteLine("c > b:{0}", c > b)
Debug.WriteLine("d < y:{0}", d < y)
Debug.WriteLine("a > b && c > b && d < y:{0}", a > b AndAlso c > b AndAlso d < y)
If a > b AndAlso c > b AndAlso d < y Then
Console.WriteLine("...")
End If
End Sub
End Module
Try This:
if(a>b)
{
if(c>b)
{
if(d<y)
{
/* Your code here */
}
}
}