Ten malutki atrybut pomoże wam, gdy będziecie mieli sporo kodu, który trzeba prześledzić krok po kroku pod debuggerem. Nakazuje on debuggerowi ominięciem oznaczonych metod gdy używamy F11 (Step-Through).
Używa się go bajecznie prosto – jak zresztą każdego atrybutu. Wystarczy oznaczyć metodę tym atrybutem i gotowe.
[DebuggerStepThrough]
public string MethodHideFromStepThrough()
{
}
Oczywiście użycie tego atrybutu ma sens, gdy będziemy mieli sporo tego typu kodu:
var code = GetAction().Execute();
i interesuje nas tylko dowiedzenie się co dzieje się w metodzie Execute, gdyż GetAction jest prostym switch’em zwracającym odpowiedni obiekt i wiemy, że działa ona poprawnie. Jeśli użyjemy tego atrybutu – F11 przeniesie nas od razu do Execute.
Co ciekawe możliwe jest użyte tego atrybutu na właściwościach, choć trochę w inny sposób. Zamiast atrybutować całe property musimy oatrybutować osobno getter i setter.
public string FlagName
{
[DebuggerStepThrough]
get { return this.flagName; }
[DebuggerStepThrough]
set { this.flagName = value;}
}
Oczywiście możemy użyć tego atrybutu tylko na getterze, gdyż możemy mieć coś co chcemy prześledzić podczas podstawiania wartości. Oczywiście jeżeli masze property nie robi nic prócz ustawiania/odczytu wartości to warto zamienić je na AutoProperty – uzyskamy ten sam efekt. Dzięki użyciu tego atrybutu możemy zaoszczędzić sobie czasu, który musimy poświęcić na klikanie F11, CTRL-F11 podczas śledzenia dużego kawałka kodu. Zachęcam także do przyglądnięcia się System.Diagnostics – jest tam jeszcze kilka ciekawych klas.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl