通常情况下,我可以编写一个很好的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”变量或返回到调用者查看结果?改变代码编写方式只为了使简单的调试任务更容易似乎很麻烦 - 我感觉可能漏掉了某些东西。