【问题标题】:DebuggerDisplayAttribute method call with parameter带参数的 DebuggerDisplayAttribute 方法调用
【发布时间】:2016-01-22 23:09:26
【问题描述】:

是否可以在DebuggerDisplay attribute 中调用带有参数的方法?我没有在 MSDN 文章 Using the DebuggerDisplay Attribute 中找到有关此问题的有用信息。

我尝试用字符串参数"d"调用ToString方法;但以下方法不起作用:

[DebuggerDisplay(@"{ToString(""d"")}")]
public class ...

我知道建议使用私有属性而不是复杂的表达式。但是,它仍然可以用表达式来实现吗?

【问题讨论】:

  • Visual Studio 的哪个版本?这对我来说很好,有点。如果我将鼠标悬停在本地,它会显示 DebuggerDisplay 属性,但在本地/监视窗口中,它会显示 ToString()。 locals/watch 中显示的内容由“工具”>“选项”>“调试”中的用户设置控制,“在变量窗口中显示对象的原始结构”选项。如果选中此项,您总是会得到 ToString 并且 DebuggerDisplay 在那里被忽略。
  • @mikez 我使用 VS 2015 Enterprise,所有更新都已安装。我在 VM 上尝试过,它也运行良好,但在我的主要环境中它总是忽略该属性。

标签: c# visual-studio debuggerdisplay


【解决方案1】:

我认为它不会允许这样做。但是你为什么不能这样做:

[DebuggerDisplay(@"{DebugDisplay}")]
public class ...

private string DebugDisplay
{
    get
    {
        return ToString("d");
    }
}

【讨论】:

  • 这更像是一个理论问题。我已经实现了您建议的属性。但是我不确定是否可以调用带参数的方法。
猜你喜欢
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
  • 2020-09-19
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
相关资源
最近更新 更多