问题标签 [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 投票
2 回答
745 浏览

c# - 调试器显示未按预期显示字段值

我在DebuggerDisplay属性中使用哪种方法(DDBpp1 或 DDBpp2)并不重要。调试器下的值列始终由 {byte[2]} 填充。我期望 DDBpp1() 方法的字符串“DDBpp”或 DDBpp2() 方法的短值。该问题出现在 VS15/17 社区下。

是否可以在调试器下更改显示字段值?

0 投票
1 回答
55 浏览

c# - DebuggerDisplay 中的跨语言 DataRow 索引

我正在尝试自定义调试对象工具提示。为了实现这一点,我在 Visualizers 文件夹(如何:安装 VisualizerAssembly: DebuggerDisplay )中有一个包含属性的库(可以将 DebuggerDisplay 属性应用于不拥有的类型吗?)。

我想看到一个 DataRow 索引,所以我在 vb.net

或在 C# 中

问题是表达式是在调试时评估的,并且对象自引用 ( Mex this) 在两种语言中是不同的。所以我得到

在我调试 c# 代码时的工具提示中。

有没有办法使用两种语言共有的语法来获取 DataRow 的索引?

0 投票
1 回答
198 浏览

c# - 如何使 DebuggerDisplay 适用于 Dictionary 中的复合类型?

为了愉快地显示 aDictionary的内容,我写了这个:

我本来希望在调试器中看到这个:

但相反,我看到了这个:

值得注意的是,如果我扩展KeyValuePairs,我确实看到:

所以DebuggerDisplay确实有效。

那么问题是如何在字典内容的主监视列表中显示复合类型的内容?

0 投票
1 回答
209 浏览

c# - DebuggerDisplayAttribute 在 VS 2017 中无效

似乎DebuggerDisplayAttribute在带有 Resharper 2018.2.3 的 Visual Studio 2017 (15.9.4) 中没有任何效果。

  • 将属性放在 AssemblyInfo.cs 或 Program.cs 中没有明显的效果。
  • 我的目标是 .Net Framework 4.7.2。更改框架版本也没有明显的效果。
  • 我已经验证在工具 -> 选项 -> 调试 -> 常规中未选中“在变量窗口中显示对象的原始结构”。我什至检查了它,关闭了 VS,重新打开了 VS,然后取消了检查,只是为了确定。没有效果。

在此处输入图像描述

  • 将属性放在自定义类上确实会产生效果。似乎该属性仅在程序集级别被忽略。
  • 这在 VS 2015 中按预期工作(使用相同版本的 Resharper)。
  • 以安全模式(使用)启动 VS 2017devenv.exe /safemode无效。
  • 更新 VS 15.9.4 -> 15.9.7 无效。

这是一个非常基本的控制台应用程序。尽管有属性,但dt变量显示{2/14/2019 10:35:38 AM}在我的监视窗口中。
在此处输入图像描述

如果我使用 ILSpy 反编译我的控制台应用程序,我可以看到应用了以下属性:

为什么属性不做任何事情?我什至如何开始调试呢?

编辑:按要求完成源文件。

ConsoleApp1.csproj

应用程序配置:

装配信息.cs:

0 投票
1 回答
1680 浏览

c# - Visual Studio: [DebuggerDisplay], shows "not a valid format specifier" when specifying format

If I specify a (date) format on the [DebuggerDisplay], I see a error CS0726:

error CS0726: ':d' is not a valid format specifier

For example this code:

Shows when debugging in Visual Studio:

enter image description here