gpt4 book ai didi

C# 调试 : [DebuggerDisplay] or ToString()?

转载 作者:IT王子 更新时间:2023-10-29 03:39:30 25 4
gpt4 key购买 nike

有两种方法可以增加调试信息的有用性,而不是在调试器中看到 {MyNamespace.MyProject.MyClass}

这些都是DebuggerDisplayAttribute的用途和 ToString() 方法。

using System.Diagnostics;
...

[DebuggerDisplay("Name = {Name}")]
public class Person
{
public string Name;
}

public class Person
{
public string Name;
public override string ToString()
{
return string.Format("Name = {0}", Name);
}
}

有什么理由偏爱其中之一吗?有什么理由不两者都做?纯粹是个人喜好吗?

最佳答案

使用 [DebuggerDisplay] 仅适用于调试器。覆盖 ToString() 具有在运行时更改显示的“副作用”。

这可能是好事,也可能不是好事。

通常,在调试过程中您需要比标准 ToString() 输出更多的信息,在这种情况下您会同时使用两者。

例如,在您的情况下,“ToString”实现对我来说似乎很奇怪。我希望“Person”类 ToString() 实现直接返回名称,而不是“Name = PersonsName”。但是,在调试期间,我可能需要额外的信息。

关于C# 调试 : [DebuggerDisplay] or ToString()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3190987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com