C# vs2010监视窗口:将某些成员打印到父节点
首先,请看截图 这是VS2010的一个观察窗口 我想将结构/类的一些子成员上移到父级的值字段中,以便于调试。(用C#表示)C# vs2010监视窗口:将某些成员打印到父节点,c#,visual-studio-2010,window,watch,C#,Visual Studio 2010,Window,Watch,首先,请看截图 这是VS2010的一个观察窗口 我想将结构/类的一些子成员上移到父级的值字段中,以便于调试。(用C#表示) 有可能吗?您有权访问MeanItem类的源代码吗?如果是这样,您可以重写ToString()方法以返回MeanItem.Content的值,该值应该会显示出来(而不是UOC.DicData.MeanItem)。是,对于您正在编写的类 使用DebuggerDisplay属性: [DebuggerDisplay("N: {Name}; A1: {Address1}; A2:
有可能吗?您有权访问MeanItem类的源代码吗?如果是这样,您可以重写ToString()方法以返回MeanItem.Content的值,该值应该会显示出来(而不是UOC.DicData.MeanItem)。是,对于您正在编写的类 使用
DebuggerDisplay
属性:
[DebuggerDisplay("N: {Name}; A1: {Address1}; A2: {Address2}; C: {City}; S: {State}; Z: {ZipCode}; P: {Phone}; F: {Fax}")]
internal class EntityAddress
{
...
}
或者为了您更简单的使用:
[DebuggerDisplay("{Content}")]
class MeanItem
{
...
}
其中,每个括号内的项都是对象上的属性。使用此属性创建的字符串将完全按照您的需要显示
MSDN文档:在MeanItem类上方添加DebuggerDisplay属性。比如:
[DebuggerDisplay("Content={Content}")]
public class MeanItem
{
...
{}之间的值是要在调试器中显示的属性的名称。您在示例中指向的区域只是对象的
ToString
表示(默认情况下,它显示类名)
您可以在类中重写ToString并返回内容
public override string ToString()
{
return Content;
}
如果您在其他地方期望一个不同的、特定的
ToString()
行为,则此操作将中断。如果您在其他地方期望一个不同的、特定的ToString()
行为,则此操作将中断。@BQ-毫无疑问,DebuggerDisplayAttribute
是正确的选择。我把这个留在这里作为备用。@Jaimec,没问题。这在大多数情况下都很有效。除非它没有,它真的没有。留下评论只是为了让别人不会认为他们是对等的或者这更容易。