相关疑难解决方法(0)

QuickWatch无法正常显示Nullable属性的".ToString()"

我在vb.net中有一个可以为null的整数属性.
代码中的此属性具有正确的值,但在QuickWatch始终显示中1,除非我将其初始化为值,否则显示六个洋地黄数字.

我的代码是:

Public Property MyNumber As Integer?

MyNumber = 6546

MessageBox.Show(MyNumber.ToString())
Run Code Online (Sandbox Code Playgroud)

QuickWatch1

而对于可空双重属性QuickWatch始终显示4/94065645841247E-324.

QuickWatch2

我在测试这个.Net 4 & 4.5visual studio 2010 & 2013,并得到同样的结果.但是C#没有这个问题

编辑:

我也附加了我的项目结果,正如你在监视窗口中看到的那样,它们都会显示出来 QuickWatch3

为什么会这样?

编辑:

这个问题与.Net 4和4.5和4.5.1有关.使用.Net 2.0和3.5没有问题

.net vb.net nullable visual-studio

12
推荐指数
1
解决办法
544
查看次数

VS2015调试器显示错误的值?

编辑:当我在Visual Studio 2013中运行此代码时,调试器显示Utc,而不是Local.这是Visual Studio 2015调试器中的一个错误.

编辑:已采取代码并放入独立的控制台应用程序,但无法在任何版本的VS中重现.游民.

有人可以向我解释一下你在这个截图中看到的内容是怎样的吗?!

  1. 在第298行,endingTimePeriodStartDate重新定义为其Date值但设置为DateTimeKind.Utc.
  2. 在第300行,如果endingTimePeriodStartDate实际上不是DateTimeKind.Utc,则抛出异常.
  3. 命中行305上的调试器断点,意味着没有抛出302行上的异常,这意味着 endingTimePeriodStartDate.Kind == DateTimeKind.Utc
  4. (我还在System.Diagnostic.Debug.WriteLine(endingTimePeriodStartDate.Kind)第305行之前做了一个,它在"输出"窗口中打印"Utc").
  5. 当我查看endingTimePeriodStartDateLocals and Watch调试器窗口时,当我将鼠标悬停在变量上时,Kind属性显示DateTimeKind.Local

在此输入图像描述

c# visual-studio visual-studio-debugging visual-studio-2015

6
推荐指数
1
解决办法
1148
查看次数