gpt4 book ai didi

c# - VS2015 调试器显示错误的值?

转载 作者:太空狗 更新时间:2023-10-29 21:53:29 24 4
gpt4 key购买 nike

编辑:当我在 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. (我还在第 305 行之前执行了 System.Diagnostic.Debug.WriteLine(endingTimePeriodStartDate.Kind) 并在“输出”窗口中打印“Utc”)。
  5. 当我在 Locals 和 Watch 调试器窗口中查看 endingTimePeriodStartDate 时,当我将鼠标悬停在变量上时,Kind 属性显示 DateTimeKind.Local

enter image description here

最佳答案

如果调试器运行的 dll 版本(以前的版本)与您的代码显示的版本不同,通常调试器会显示错误的行号并进入旧代码。发生这种情况

  • 当有某种缓存时
  • 当以前运行的版本没有正确关闭,或者仍在另一个进程中运行时。
  • 当 Visual Studio 没有指向正确的代码时

通常要解决此问题,您应该:

(首先只尝试“清理”和“重建”)

  1. 停止所有正在运行或调试的 Visual Studio 项目。
  2. 关闭所有 Visual Studio 解决方案和窗口,以便 Visual Studio 停止运行。
  3. (如果下一步没有解决问题,那么下次在继续下一步之前也重新启动计算机)
  4. 仅重新打开您需要运行的解决方案。点击“清洁解决方案”。然后“重建解决方案”。

检查这是否解决了问题。

  1. 手动删除 bin 文件夹:(如果清理/重建不起作用)

5.1 如果你害怕,备份你的整个源目录。一切正常后,删除备份...

5.2 手动进入依赖项目(在你的“错误代码显示”项目中引用)并在每个项目中,进入 obj 和 bin 文件夹并删除从那里自动创建的所有内容 - 在换句话说,所有你没有手动放在那里的东西。通常这就是一切。不用担心,visual studio 会重新创建 Debug 和 Release 目录并填充它们。

同时删除项目的 obj 和 bin。

重建一切。

关于c# - VS2015 调试器显示错误的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32908514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com