.net - 如何在没有返回变量的情况下调试 VB.NET 计算函数返回

标签 .net vb.net debugging

通常情况下,我可以编写一个很好的紧凑的 VB.NET 小函数,当需要执行 Return 语句时,很自然地只返回快速计算或方法调用的结果。但是,如果我需要单步调试调试器以查看将从该函数返回的内容,这会变得很困难。例如,用这个简单的方法来说明这个概念:

Public Shared Function GetAge(ByVal dob As DateTime, ByVal asOfDate As DateTime) As Integer
   If asOfDate.Date < dob.Date Then Return 0
   Dim factor = If(asOfDate.DayOfYear < dob.DayOfYear, 1, 0)
   ' What's going to be returned?
   Return asOfDate.Year - dob.Year - factor ' Imagine that this could be a more complicated calc, or one with side-effects that would prevent me from running it in the immediate window
End Function

我发现自己改变了编写代码的方式,只是为了让调试更容易。所以那个方法会变成:
Public Shared Function GetAge(ByVal dob As DateTime, ByVal asOfDate As DateTime) As Integer
   If asOfDate.Date < dob.Date Then Return 0
   Dim factor = If(asOfDate.DayOfYear < dob.DayOfYear, 1, 0)
   Dim result = asOfDate.Year - dob.Year - factor ' I made this variable just for setting a debugging breakpoint
   Return result ' I can now set a breakpoint here, but it seems awkward
End Function

我在调试器中是否遗漏了什么可以更容易地查看方法将返回的内容,而不是总是制作 result变量或跳回调用者以查看结果?仅仅为了使简单的调试任务更容易而改变代码的编写方式似乎很尴尬 - 感觉我必须遗漏一些东西。

最佳答案

您可以在 End Function 处设置断点行并将光标悬停在函数名称上。

关于.net - 如何在没有返回变量的情况下调试 VB.NET 计算函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238505/

相关文章:

C#等待外部PID退出

c# - 我怎么知道哪个方法调用了我的方法?

VB.NET form.show() 错误

javascript - 动态 JavaScript 引用

debugging - 如何使用GDB调试OpenCV程序?

c# - ServicePointManager 安全协议(protocol)冲突

.net - 在 Powershell 中使用升级的 FolderBrowserDialog ("Vista style")

VB.NET - 计算两个日期之间的天数(排除)

objective-c - 有条件的 NSLog,不降低性能

c - 在 Cortex R5 上快速输出用户数据