2016-01-22 103 views
0

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

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

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

我知道它建议使用私有财产,而不是复杂的表达式。但是,表达式有可能吗?

+0

哪个版本的Visual Studio?这对我来说很好,有点。如果将鼠标悬停在本地上,它将显示DebuggerDisplay属性,但在本地/监视窗口中,它会显示ToString()。在本地/手表中显示的内容由用户在工具>选项>调试,“显示变量窗口中对象的原始结构”选项中进行设置。如果选中此项,您总是会收到ToString,而DebuggerDisplay在此处将被忽略。 –

+0

@mikez我使用VS 2015 Enterprise,所有更新都已安装。我在虚拟机上试了一下,并且在那里运行得很好,但在我的主环境中,它总是忽略该属性。 – Koopakiller

回答

1

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

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

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

这更是一个理论问题。我已经实施了一个像你所建议的财产。但我不确定是否可以使用参数调用方法。 – Koopakiller