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