EFr*_*ank 13 .net c# debugging visual-studio
我想应用DebuggerDisplayAttribute
包括内存地址值.有没有办法让它以十六进制显示?
[DebuggerDisplay("Foo: Address value is {Address}")]
class Foo
{
System.IntPtr m_Address = new System.IntPtr(43981); // Sample value
System.IntPtr Address
{
get { return m_Address; }
}
}
Run Code Online (Sandbox Code Playgroud)
这将显示: Foo: Address value is 43981
相反,我希望值以十六进制显示,如下所示:Foo: Address value is 0xABCD
.
我知道我可以通过覆盖来应用各种格式ToString()
,但我很好奇是否可以使用DebuggerDisplayAttributes.
提前致谢!
Dav*_*vid 23
是的,您可以像平常一样使用属性中的任何方法.
[DebuggerDisplay("Foo: Address value is {Address.ToString(\"<formatting>\"}")]
就是一个例子
http://msdn.microsoft.com/en-us/library/x810d419.aspx
Car*_*din 10
有一个建议由https://blogs.msdn.microsoft.com/jaredpar/2011/03/18/debuggerdisplay-attribute-best-practices/
基本上,创建私人财产,比方说DebugDisplay
.让属性返回您选择的格式化字符串.然后只需在DebuggerDisplay
属性中使用新的私有属性.
例如
[DebuggerDisplay("{DebugDisplay,nq}")]
public sealed class Student {
public string FirstName { get; set; }
public string LastName { get; set; }
private string DebugDisplay {
get { return string.Format("Student: {0} {1}", FirstName, LastName); }
}
}
Run Code Online (Sandbox Code Playgroud)
我发现这种方式更具可读性.
归档时间: |
|
查看次数: |
3117 次 |
最近记录: |