【发布时间】:2019-07-25 07:14:47
【问题描述】:
如您所见,我们在第 28 行。有什么方法可以在不让代码返回到调用者函数的情况下查看此时函数的返回值?
Foo.Bar() 是一个生成唯一路径的函数调用(例如)。所以它不是恒定的。
在即时窗口中输入 ?Foo.Bar() 也不起作用,因为这会重新评估代码:
?Foo.Bar()
"80857466"
?Foo.Bar()
"2146375101"
?Foo.Bar()
"1106609407"
?Foo.Bar()
"792759112"
在 VB.NET 中,可以通过在 Watch 中输入函数名称,然后将其作为变量威胁。
但是在 C# 中这是不可能的,还有其他提示吗?
PS:重写不是一种选择。
【问题讨论】:
-
yup.. 只需选择 Foo.Bar() 并右键单击它即可快速观看。
-
@Malcolm:快速观察重新评估。你可能会得到不同的回应,这取决于
Bar()做了什么 -
我同意大卫的观点,但如果他将断点设置为 cgreeno,如下面的回答,它将起作用。 :)
-
@Malcolm:允许,但总是有可能
Bar不是您可以介入的方法。它可能是对其他人的 DLL 的调用。我经常看到诸如“返回新插入的数据库行的 id”之类的解决方案。在这些情况下,接受的答案将是适当的。这似乎是一个足够常见的场景,您可以期望有一种方法可以检查返回的值,即使它是一个复杂的对象(接受的答案没有涵盖)......
标签: c# function return-value return