public class A
{
[DebuggerDisplay("{DDBpp1()}")]
public byte[] Bpp = new byte[2];
public string DDBpp1()
{
return "DDBpp";
}
public string DDBpp2()
{
short result;
if (BitConverter.IsLittleEndian)
{
var bppCopy = new byte[2];
Bpp.CopyTo(bppCopy, 0);
Array.Reverse(bppCopy);
result = BitConverter.ToInt16(bppCopy, 0);
}
else
{
result = BitConverter.ToInt16(Bpp, 0);
}
return result.ToString();
}
}
在DebuggerDisplay
属性(DDBpp1或DDBpp2)中使用哪种方法并不重要。调试器下的值列始终由{byte [2]}填充。我期望DDBpp1()方法的字符串“DDBpp”或DDBpp2()方法的短值。 此问题出现在VS15/17社区中。debuggerdisplay不按预期显示字段值
是否可以在调试器下更改显示字段值?如果实现Bpp
作为成员或财产
这没有什么区别:该类 -
正如答案中已经解释的那样,这个属性应该去上课。如果你需要一个会员,那么你的会员应该是一个班级。事实上,如果数据太复杂而无法显示,那么你的班级本身可能会做很多工作。 – Phil1970