【问题标题】:Can the Visual Studio Debugger display strings unquoted/unescaped?Visual Studio 调试器可以显示未引用/未转义的字符串吗?
【发布时间】:2013-09-16 13:09:20
【问题描述】:

Visual Studio 中的托管调试器(我使用的是 11.0)显示包含双引号和反斜杠的字符串值,如下所示:

"{\"Text\":\"C:\\\\Temp\"}"

有时我想以简单的形式显示一个像上面这样的转义文本:

{"Text":"C:\\Temp"}

我知道文本可视化器可以通过值旁边的放大镜访问,但在调试某些文本操作例程时这相当麻烦。

有没有办法改变调试器中字符串值的显示?

【问题讨论】:

    标签: c# visual-studio debugging visual-studio-2012 debuggervisualizer


    【解决方案1】:

    我看到两个选项可能比每次点击放大镜都更方便,具体取决于具体情况:

    1. 右键单击该值并点击“添加到观察”,然后编辑添加到观察的表达式并在末尾添加,nq(“无引号”format specifier)。例如,“myJsonObject.JsonText,nq”。从那时起,查看 Watch 窗口(而不是数据提示)以查看单步执行代码时的值。

    2. 使用OzCode,右键单击表达式并选择Add Custom Expressions,并在末尾添加一个带有,nq的自定义表达式。例如:[obj].JsonText,nq

    全面披露: OzCode 是我与人合着的一个商业 VS 扩展,目前在测试阶段免费。

    【讨论】:

      【解决方案2】:

      我刚刚在调试器窗口中发现了另一种方法。

      代替

      ?myStringVariable
      

      使用

      System.Diagnostics.Debug.print(myStringVariable, {"nq"})
      

      这似乎停止了双引号。

      编辑:更简单的方法:

      ?myStringVariable,nq
      

      这在 Visual Studio 2015 中对我有用

      【讨论】:

      • 遗憾的是它在 javascript 中不起作用。自从发现这一点后,我在代码中添加了几个转储函数,例如“DumpDataTable”,我可以使用 ?DumpDataTable(myDataTable),nq ...
      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多