Kolejnym atrubutem pomocnym podczas debugowania programu jest
DebuggerBrowsable znajdujący się, podobnie jak DebuggerDisplay w
System.Diagnostics. Atrybut ten okazuje się pomocny, gdy przeglądamy obiekty składające się z dużej ilości properties, a chcemy śledzić stan jedynie niektórych z nich, bądź wyświetlać je w sposób łatwiejszy do podglądu. Nad każdym property można umieścić atrybut DebuggerBrowsable, który w konstruktorze przyjmuje jedną z trzech opcji.
- Never - pole lub property nie będzie widoczne po rozwinięciu obiektu w zakładce Locals
- Collapsed - zachowanie domyślne, obiekt widoczny, ale nie rozwinięty
- RootHidden - w przypadku wyświetlania kolekcji, jej elementy są widoczne poziom wyżej, bez wyświetlania jej roota. Np. jeśli mamy listę napisów jako property pewnej klasy, to przy ustawieniu RootHidden, wszystkie napisy będą widoczne jako properties tej klasy.
Zasadę działania ilustruje także poniższy przykład.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using D = System.Diagnostics;
namespace DebuggerBrowsableAttribute
{
public class SampleClass
{
[D.DebuggerBrowsable(D.DebuggerBrowsableState.RootHidden)]
public List<int> RootHidden { get; set; }
[D.DebuggerBrowsable(D.DebuggerBrowsableState.Collapsed)]
public int Collapsed { get; set; }
[D.DebuggerBrowsable(D.DebuggerBrowsableState.Never)]
public int Never { get; set; }
public SampleClass()
{
Random r = new Random();
RootHidden = new List<int>();
RootHidden.Add(r.Next(100));
RootHidden.Add(r.Next(100));
RootHidden.Add(r.Next(100));
Collapsed = r.Next(100);
Never = r.Next(100);
}
}
}
Brak komentarzy:
Prześlij komentarz