我有 C 的背景,最近我開始使用 C#。
我撰寫了以下代碼(在 Visual Studio 中):
var list_Loads = database.GetData<Load>().ToList();
var test_list = list_Loads.Where(o => (o.Name.Substring(0, 3) == "123")).ToList();
當我運行程式并將滑鼠移到兩個串列上時,首先我得到了計數,這非常有用,但是當我詢問條目時,這就是我得到的:
0 : namespace.Load
1 : namespace.Load
2 : namespace.Load
...
不是很有用,你可以想象:-)
所以我的問題是:如何顯示Name這些物件的屬性?
我想:沒問題。我有原生可視化器的背景,因此將其轉化為有用的資訊應該相當容易,但隨之而來的是:
為了改變這些物件的表示方式,第一個建議是添加一個[DebuggerDisplay]“標簽”到該類在源代碼中的定義。
但是,由于這些類是我剛才提到的框架的一部分,我無權訪問源代碼,因此我無法修改它。
然后我找到了另一個解決方案,歸結為:“撰寫一個完整的 C# 專案,除錯、測驗和安裝它,它可能會作業”(請參閱
也許我很挑剔,我只想看看:
- 星期幾和
- 一年中的一天
...我可以通過以下方式做到這一點:
using System.Diagnostics;
[assembly: DebuggerDisplay("{DayOfWeek} {DayOfYear}", Target = typeof(DateTime))]
...這導致:

例子:
namespace DebuggerDisplayTests
{
public class DebuggerDisplayTests
{
public DebuggerDisplayTests()
{
var items = new List<DateTime>
{
DateTime.Now.AddDays(-2),
DateTime.Now.AddDays(-1),
DateTime.Now
};
}
}
.
.
.
}
覆寫
[assembly:DebuggerDisplay()]也可以用作覆寫[DebuggerDisplay]3-rd 方型別上預先存在的方法。不喜歡他們選擇的風格?該型別是否顯示太多資訊?用 更改它[assembly:DebuggerDisplay()]。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465836.html
上一篇:除錯谷歌應用腳??本
下一篇:gdbback-trace沒有顯示linux-5.10.0或linux-5.10.122的所有函式呼叫堆疊,為什么?
