为什么调试器会无限循环级联 "Static Members" 和 "Value" 属性?

Why does the debugger endlessly loop over cascading "Static Members" and "Value" properties?

当我调试从存储过程返回的数据时,我深入到 DataRow 以查看为数据集的各个成员分配了哪些值。这让我陷入了徒劳的追逐,从 "Static Members" 到 "Value" 然后又回来,一遍又一遍,如下所示:

为什么要这样做?

我在这个块中对 custNum 的赋值设置了一个断点:

foreach (DataRow delPerfDataRow in dtDelPerf.Rows)
{
     string custNum = delPerfDataRow["CustNo"].ToString();
     string memNum = delPerfDataRow["MemberNo"].ToString();
     . . .

custNum 和 memNum 在赋值语句之后都没有显示任何值,所以我 right-clicked delPerfDataRow 来查看其他数据成员有哪些值。但是,在深入研究 CustNo 数据成员时,试图查看该值导致了这种重复的重复取笑 tail-chasing.

因为你一遍又一遍地看着同一件事。看下图:

s 的值是 System.DBNull,它有一个名为 Value 的字段。该字段的类型为 System.DBNull,显然会有一个名为 Value 的字段。并且继续下去。

你的情况也一样。您的 CustNo 列有 System.DBNull 等等。如果您在快速观看window中查看它,您将看到与上图相同的window。