在 Visual Studio 中调试时显示 DateTime 的毫秒部分

Ela*_*tor 5 c# debugging time-format visual-studio

我试图在 Visual Studio 中调试一些需要毫秒精度的东西,这使得它变得非常繁重,因为a 的无参数 表示不包括毫秒部分。ToString()System.DateTime

一个例子是,当验证数组System.DateTime是否有序时,我希望能够在从本地窗口检查时看到毫秒部分。

我并不是寻求有关格式字符串的帮助DateTime.ToString

它似乎继承自系统全球化设置,该设置不允许您指定毫秒格式(出于良好、明显的原因): 在此输入图像描述

谢谢。

小智 5

在回答之前,我首先想回应一下您对这个问题的评论:

这就需要写代码了。我说的是在调试时检查值。

我的答案确实涉及编写一行代码;但是,它影响调试器可视化工具,并且仅影响 的每个实例DateTime,并且不会影响代码的运行时性能。

那是说:

您可以添加程序集级属性DebuggerDisplay来更改调试器对类的可视化方式。这是我自己的代码的一个基本示例:

[assembly: DebuggerDisplay("Start={StartDate} | End={EndDate}]", Target = typeof(DateRange))]
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,第一个参数是一个字符串,定义您想要在调试器中看到的模板。

您可以将其放置在任何文件中,但老实说,它属于具有其他程序集级属性的 AssemblyInfo.cs 文件。

现在,我认为在你的情况下,你会想让字符串参数像这样(我还没有尝试过):

[assembly: DebuggerDisplay("{ToString(\"fff\")}", Target = typeof(DateTime))]
Run Code Online (Sandbox Code Playgroud)

如果这是不正确的,请随时告诉我,我会进行必要的更正。