Visual Studio 2010:调试时,如何从变量中复制包含回车符的字符串值?

Posted

技术标签:

【中文标题】Visual Studio 2010:调试时,如何从变量中复制包含回车符的字符串值?【英文标题】:Visual Studio 2010: While debugging, how can I copy string values containing carriage returns out of variables? 【发布时间】:2012-06-01 03:43:41 【问题描述】:

当我单步执行 c# 中的代码(不确定这是否是 VB.NET 中的问题)并查看存储在字符串变量中的 SQL 时,有时我喜欢将其复制并粘贴到记事本或我的 SQL 程序中。但是,如果它包含回车符,它实际上会以line1\r\nline2 的形式复制到我的剪贴板。是否有一种使用实际回车而不是回车转义码来复制它的本机方法?

编辑:这也适用于显示为\t 的标签。发生这种情况是因为我的代码正在从文本文件中读取 SQL,并且该文本文件包含回车符和制表符。替代方法是 1)在 SQL 中没有任何回车或制表符(这会导致丑陋的 SQL)或 2)在将 SQL 读入我的字符串变量时将它们去掉。不过,我并不热衷于这些选项,只是为了简化调试过程。

【问题讨论】:

【参考方案1】:

这取决于你从哪里复制值。

如果在调试时将鼠标悬停在变量上,或者查看 Locals 窗口,您应该会在工具提示中看到一个小的放大镜符号。 单击此按钮将打开文本可视化器,该可视化器应考虑任何换行符。

例如,如果我的代码是:

string test = "hello" + Environment.NewLine + "world";

然后我可以在 Locals 中查看(注意它仍然在那里显示 \r\n)或将鼠标悬停在 test 上查看:

这将打开文本可视化器,您可以从中复制/粘贴:

【讨论】:

太棒了。你的解决方案很完美。我只是把可视化的文字复制到窗口外就行了!【参考方案2】:

在具有变量(您要复制的整个值)的语句上放置一个断点。当控件出现在语句上时,将鼠标指针移到变量名上。您将看到一个气球框,其中显示变量名称、双目图标和变量值。单击双目图标或双目图标旁边的小向下箭头图标以在文本可视化器中查看。希望这就是你所看到的。这是在 C# 的上下文中,希望在 VB.NET 中也是如此(但不确定)。

【讨论】:

以上是关于Visual Studio 2010:调试时,如何从变量中复制包含回车符的字符串值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2010 中关闭远程调试?

C# Visual Studio 2010 未开始调试

调试时如何让 Visual Studio 保持在一个线程上?

Visual Studio 2010 测试未在异常时进入调试器

如何解决Visual Studio2010 编译时提示系统找不到指定文件问题

如何解决Visual Studio2010 编译时提示系统找不到指定文件问题