C#重写ToString,以便在调试器中显示多行填充文本

C#重写ToString,以便在调试器中显示多行填充文本,c#,debugging,tostring,multiline,C#,Debugging,Tostring,Multiline,当我将鼠标移到调试程序中的某个变量上时,如何在ToString方法中重写并格式化字符串以获取多行调试消息。当前,当我返回多行字符串(由\r\n分隔)时,它仍然在调试器中以单行结束。调试器窗口从值中剥离换行符 如果要查看换行符,请在即时窗口中打印该值。您可以为您的类型编写一个。当然,根据你的需要,这可能有点过头了 正如@dtb在评论中善意地指出的,有一个现成的可视化工具,可能足以满足您的需要: 有一个可视化工具,可以显示文本并显示换行符。你可以 从工具提示中的放大镜图标访问它。这只是一个问题 以C

当我将鼠标移到调试程序中的某个变量上时,如何在
ToString
方法中重写并格式化字符串以获取多行调试消息。当前,当我返回多行字符串(由
\r\n
分隔)时,它仍然在调试器中以单行结束。

调试器窗口从值中剥离换行符

如果要查看换行符,请在即时窗口中打印该值。

您可以为您的类型编写一个。当然,根据你的需要,这可能有点过头了

正如@dtb在评论中善意地指出的,有一个现成的可视化工具,可能足以满足您的需要:

有一个可视化工具,可以显示文本并显示换行符。你可以 从工具提示中的放大镜图标访问它。这只是一个问题 以C#字符串文字语法显示字符串的工具提示


查看,它使您能够更好地控制调试器中显示的内容。但不确定它是否允许多行文字。

考虑使用,它提供了更多选项。

能否尝试传递Environment.NewLine。。?等等,您不能在调试器中执行此操作。。但是,您可以直接在控制台上写下。。那是我的建议。。如果要使用自己的格式化字符串字符串重写.ToString()方法,通常会使用override ToString()。。否则我只会写到控制台或者@Slaks建议打印到即时窗口,而这并不是ToString的真正用途。如果我想要一种向对象请求“调试字符串”的方法,我会添加一个新接口,类似于带有“ToDebugString”方法的
IDebugString
,并调用它。如果采用asawyer的方法,请确保使用命令命令调试器使用该特定方法!我要寻找的是类似于您将列表项视为单独行上的字符串的方式。我们的产品正在构建源代码树,它们通常会变得非常复杂和长,因此单击放大镜图标是不好的,因为它会关闭当前打开的变量树(a.b.c[12].d),然后正如Christian的回答所示,您正在寻找一个调试器可视化工具。可能是这样,但因为他们并不是真的要求
ToString()
如果调试器的行为有所不同,但在处理这些字符串方面,调试器的行为会有所不同,这是一个很好的答案。如果调试器在这里提供更大的灵活性,那就更好了。如果没有其他问题的话,在这个网站上的一些情况下,切换调试器如何显示某些内容的功能可以很快消除人们的困惑。事实上,这个可视化工具与pinging current变量一起工作非常好!THNX!