【问题标题】:how to see the values of static variables at runtime in visual studio如何在 Visual Studio 运行时查看静态变量的值
【发布时间】:2013-02-14 06:52:52
【问题描述】:

这个问题几乎解释了我想要做什么。我在 c# 中有几个项目构成了解决方案,我想在 Visual Studio 中查看运行时静态变量的值。有没有办法做到这一点?

【问题讨论】:

  • QuickWatch 窗口中的 ClassName.StaticVarName> 是否不显示值?
  • 其实我不知道快速监视窗口。你能在这方面指导吗?

标签: c# visual-studio-2010 runtime static-members


【解决方案1】:

调试 -> Windows -> 立即 -> 键入代码以访问您的成员:

[>] MyClass.MyStaticValue [ENTER]

或将它们放在监视窗口中。

注意事项:

  • 更多信息可以在 MSDN 上找到 - Immediate Window
  • 如果仅通过提供命名空间 (global::MyClass.MyStaticValue) 找不到您的类,您可能需要使用 global:: 前缀。

【讨论】:

  • 抱歉,我在视图选项卡下看不到任何即时窗口。我正在使用 Visual Studio 2010。
  • @VictorMukherjee 有 2 个地方有窗口列表...我像往常一样弄错了一个 - 更新。
  • 显示以下消息:在运行模式下无法计算表达式。
  • @VictorMukherjee - 您必须暂停应用程序或等到遇到断点。
  • 您可能还需要在即时窗口中包含任何命名空间。这在 C++ 中是必需的。 Camera::WorldMatrix 无效,但 Graphics::Camera::WorldMatrix 有效。
【解决方案2】:

一种方法是使用Immediate Window,正如@Alexei 所说。

第二种方法是使用QuickWatch窗口如下: 在要评估静态或任何其他变量/字段/属性的类中放置一个断点,然后运行应用程序。 然后当断点命中时,右键单击类中的任何变量/字段/属性并选择QuickWatch。现在,在 QuickWatch 窗口文本框中输入 ClassName.StaticVarName> 并按回车,您应该可以看到如下截图所示的值:

【讨论】:

  • 关键点是控件必须在该类中才能使静态成员的值可见。一旦断点被​​命中,一个普通的 Watch 也可以工作。
  • QuickWatch 的问题是需要先知道静态成员的名字。如果您想使用 QuickWatch 来反映 static class 的所有静态成员,那么您就是 SOL。令人惊讶的是,QuickWatch 不允许您这样做。
【解决方案3】:

在 Visual Studio 2017 中,当您中断代码执行时,当您将鼠标悬停在源代码中的声明上时,您可以看到静态变量的值,会出现这样的小弹出窗口:

  1. 您可以右键单击此弹出窗口并将变量添加到观察窗口。
  2. 您可以单击图钉以防止变量弹出窗口消失。

【讨论】:

    【解决方案4】:

    您安装了 Costura.Fody 吗?我在一个项目中遇到了同样的问题,发现它导致静态类变量不显示,并且每次都必须重新构建项目。

    【讨论】:

      猜你喜欢
      • 2013-11-25
      • 1970-01-01
      • 2019-01-24
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      相关资源
      最近更新 更多