问题标签 [debuggerdisplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1289 浏览

visual-studio-2008 - DebuggerDisplay 属性未按预期工作

我知道这个属性应该在 C# 中工作,但在我的情况下它没有。我有一个懒惰的属性儿童类。访问此属性可能会产生往返服务器的副作用。所以,很自然地,我不希望这种情况发生在我只是在调试器观察窗口中观察时。

省略所有不相关的细节,源看起来很普通:

然而,当我观察对象并this在观察窗口中展开时,我在显示中看不到 (Frozen),这意味着调试器只是忽略了该属性。

调试器显示图像快照

根据 Reflector 的说法,该属性确实存在。我用的是VS2008。

有任何想法吗?

0 投票
1 回答
423 浏览

c# - 具有 DebuggerDisplay 属性的 DataTable 后代丢失 DebuggerVisualizer

我有一个定义了 DebuggerDisplay 属性的 DataTable 的后代。添加 DebuggerDisplay 属性时,删除了 DataTable 的默认可视化工具。如果我删除 DebuggerDisplay 属性,则 DataTable 可视化工具会返回。我想要默认的 DataTable 可视化工具和我对 DebuggerDisplay 的覆盖。

你们知道如何让它工作吗?

0 投票
3 回答
470 浏览

c# - 我们什么时候必须使用 DebuggerDisplay 属性?使用这个有什么好处?

我们什么时候必须使用 DebuggerDisplay 属性?使用这个有什么好处?

0 投票
3 回答
381 浏览

.net - 是否存在使用 DebuggerDisplayAttribute 呈现对象的方法

我有许多用 DebuggerDisplayAttribute 装饰的类。

我希望能够将跟踪语句添加到将显示这些类的实例的单元测试中。

.NET Framework 中是否存在将显示使用 DebuggerDisplayAttribute 格式化的对象的方法(如果未定义 DebuggerDisplayAttribute,则回退到使用 .ToString())?

编辑

澄清一下,我希望框架中可能包含一些内容。我知道我可以从 DebuggerDisplayAttribute 获取 Value 属性,但是我需要使用 DebuggerDisplayAttribute.Value 表示的格式字符串来格式化我的实例。

如果我自己动手,我会设想一种扩展方法,如下所示:

0 投票
5 回答
15060 浏览

c# - C# 调试:[DebuggerDisplay] 还是 ToString()?

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

这些是使用DebuggerDisplayAttributeToString()方法。

或者

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

0 投票
1 回答
331 浏览

c# - 在 PropertyGrid C# 中显示 DebuggerDisplay

我想知道是否可以让调试器显示为 PropertyGrid 中类的文本?

我似乎无法在任何地方找到这个答案。

这是我所拥有的一个例子。

这个模块保存在一个引擎类中,所以当我设置 propertyGrid.SelectedObject = engineInstance 时,我想在属性网格中看到

引擎

+ 调试模块 | “FPS = 60”

转数快 | 60
0 投票
4 回答
1975 浏览

c# - [DebuggerDisplay(...)] 属性有用的示例?

我正在寻找一个很好的具体示例,显然希望ToString()用某些东西覆盖,但要使用[DebuggerDisplay(...)]自定义属性在调试器中显示其他东西?

0 投票
4 回答
349 浏览

c# - DebuggerDisplay - 输入方括号

这呈现为:

在此处输入图像描述


还有这个:

呈现为:

在此处输入图像描述

为什么有区别?

编辑:我知道为什么会有所不同。我的问题是,如何在不硬编码颜色文本的情况下获得第二个结果。

0 投票
4 回答
2036 浏览

c# - 何时使用 DebuggerDisplayAttribute

围绕DebuggerDisplayAttribute有哪些最佳实践?是什么指导您决定何时以及如何将属性应用于您的代码?例如..

  1. 您是否发现DebuggerDisplayAttribute某些类型的对象(即自定义数据结构)比其他对象更有用?
  2. 您是在公共类型、内部类型还是两者上定义它?
  3. 您通常会将它添加到初始实现中,还是等待测试人员/用户请求它?
  4. 什么时候定义更好,DebuggerDisplayAttribute什么时候重写更有意义.ToString()
  5. 您是否有关于在属性中公开多少数据的指导方针,或者对要包含的计算量的限制?
  6. 是否有任何继承规则适用于基类?
  7. 在决定何时或如何使用它时,还有什么需要考虑的吗?
0 投票
3 回答
2396 浏览

c# - 在 [DebuggerDisplay] 属性中使用扩展方法

属性 [DebuggerDisplay] ( Using DebuggerDisplayAttribute ) 允许在 VS 2010/2008 的调试器中定义显示。通过修改 AutoExp.cs/.dll,我什至可以覆盖系统类型和第 3 方类型的显示,例如

在内花括号中,我可以引用字段、属性和方法。是否可以引用扩展方法

例如,我尝试显示较短的类型名称,例如,$SCG.Dictionary而不是System.Collections.Generic.Dictionary. 我将此添加到 AutoExp.cs:

但调试器抱怨:当前上下文中不存在名称“ShortName”。

我是否遗漏了一些东西,或者只是不能在那里使用扩展方法?

我知道我可以覆盖ToString (),但这仅对我自己的类型有帮助。