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.