DebuggerDisplay – mały pomocnik
Czasami, gdy próbuję zdebugować jakiś uciążliwy problem istnieje konieczność oglądania właściwości obiektu.
Klikanie kolejnych plusików w wizualizacji debuggera w poszukiwaniu odpowiedniego obiektu na liście doprowadza mnie do szału (zwłaszcza, gdy klasy są dziedziczone).
Przy przeglądaniu namespace’a System.Diagnostics natknąłem się na atrybut: DebuggerDisplay. Krótka lektura MSDN i okazało się, że taka mała głupota może niesamowicie ułatwić życie :)
Weźmy pod lupę bardzo prosta klasę:
public class Part
{
public string PartSeries { get; set; }
public string PartNumber { get; set; }
...
}
Jak prezentuje się w debuggerze podgląd listy naszych części? Ano tak:
Jeśli nie znamy pozycji naszego elementu musimy uprawiać zawody w klikaniu mychą w celu znalezienia interesującego nas elementu. Jak ułatwić sobie życie?
Dodając do klasy atrybut DebuggerDisplay:
[System.Diagnostics.DebuggerDisplay("Part number = {PartNumber}, Part series = {PartSeries} ")]
public class Part
{
public string PartSeries { get; set; }
public string PartNumber { get; set; }
...
}
Wizualizacja naszej kolekcji wygląda teraz następująco:
Prawda, że lepiej i wygodniej :) ?
Nie będę rozwodził się nad wszystkimi opcjami jakie udostępnia ten atrybut, gdyż bardzo dobrze (wraz z przykładami) opisany jest on na MSDN.
Miłego debugowania! ;)
Nie znaleziono podobnych wpisów.
Możesz śledzić odpowiedzi do tego wpisu za pomocą RSS 2.0 feed. Możesz leave a response, or trackback z Twojej własne strony.







DebuggerDisplay – mały pomocnik…
Dziękujemy za publikację – Trackback z dotnetomaniak.pl…
Bardzo ciekawa sprawa z tym atrybutem! Na pewno użyje go nie raz! Dzięki za info :)
Jeśli nadpisałbyś ToString() uzyskałbyś ten sam efekt :-)
Jednak nadpisanie ToString „zamknęłoby” mi drogę użycia go w innym kontekście. DebuggerDisplay jest stricte pomocnikiem programisty a ToString można użyć w celu formatowania już docelowej „informacji” dla użytkownika ;)
zajefajny bajer – dzięki, na pewno się przyda :)