C# Visual Studio 2010中的监视窗口不适用于从泛型词典继承的类

C# Visual Studio 2010中的监视窗口不适用于从泛型词典继承的类,c#,visual-studio-2010,dictionary,tostring,visual-studio-debugging,C#,Visual Studio 2010,Dictionary,Tostring,Visual Studio Debugging,我创建了一个类,该类继承自Dictionary并重写了方法ToString(),以便于调试(在监视窗口中查看此类型实例的状态)。如果我在控制台上显示此类型,则一切正常: 在控制台中“> 但是Visual Studio似乎仍然使用字典类型的原始方法ToString() 在手表窗口中“> 这一事实使我的代码调试变得非常复杂,因为我无法快速看到所需的值​​此类型的字段的 如何强制Visual Studio使用我的方法ToString(),而不是类型Dictionary的方法 使用系统; 使用Syste

我创建了一个类,该类继承自
Dictionary
并重写了方法
ToString()
,以便于调试(在监视窗口中查看此类型实例的状态)。如果我在控制台上显示此类型,则一切正常:

在控制台中“>

但是Visual Studio似乎仍然使用
字典类型的原始方法
ToString()

在手表窗口中“>

这一事实使我的代码调试变得非常复杂,因为我无法快速看到所需的值​​此类型的字段的

如何强制Visual Studio使用我的方法
ToString()
,而不是类型
Dictionary
的方法

使用系统;
使用System.Collections.Generic;
命名空间测试字典
{
班级计划
{
静态void Main(字符串[]参数)
{
CmdValue innerCmdVal=新CmdValue(“InnerName”,null);
CmdValue cmdVal=新CmdValue(“名称1”,innerCmdVal);
cmdVal.Add(“键1”、“值1”);
控制台写入线(cmdVal);
Console.ReadKey();
}
}
类值:字典
{
公共只读字符串名称;
公共只读CmdValue InnerCmdValue;
公共CmdValue(字符串名称,CmdValue innerCmdValue)
{
this.Name=Name;
this.InnerCmdValue=InnerCmdValue;
}
公共重写字符串ToString()
{
string str=string.Format(“{0}[{1}].{2}”、this.Name、this.Count、this.InnerCmdValue);
返回str;
}
}
}
您正在查找

例如:

[DebuggerDisplay("Name: {LastName}, {FirstName}")]
public class Customer
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

如果您创建一个名为比尔·克林顿的客户,调试器窗口将显示“Name:Clinton,Bill”作为一个值。

非常感谢!我确实喜欢这个[DebuggerDisplay(“{ToString()}”)],现在一切都正常了!但我仍然想知道为什么VS不使用我类型的重写方法…因为调试器从不使用ToString方法。您看到的“Count=1”是由于基类也有一个DebuggerDisplay属性,该属性可能为“Count={Count}”。
[DebuggerDisplay("Name: {LastName}, {FirstName}")]
public class Customer
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}