字典的调试器显示';s键/值对

本文关键字:值对 调试器 显示 字典 | 更新日期: 2023-09-27 18:26:32

是否可以将System.Diagnostics.DebugerDisplay属性分配给字典的定义?

例如

Dictionary<int, SomeClass> 
[System.Diagnostics.DebuggerDisplay("{Info,nq}")]
public class SomeClass{
    string code {get;set;}
    public string Info { get { return "info" + code; }}
}

// place an attribute here??
[System.Diagnostics.DebuggerDisplay("{???,nq}")]
Dictionary<int, SomeClass> dict = new Dictionary<int, SomeClass>();

字典的调试器显示';s键/值对

编辑:另请参阅此答案。

我还没有尝试过,但从文档来看,可以在程序集级别应用此属性。所以理论上,你可以这样做:

[assembly: DebuggerDisplay("{Key,nq}: {Value,nq}", Target = typeof(KeyValuePair<int, SomeClass>))]

如果它允许您指定一个Target,这是一个开放的泛型类型,例如Target = typeof(KeyValuePair<,>),它适用于任何类型的KVP,我会感到惊讶。但如果你需要的话,值得一试!