piątek, sierpień 01, 2008

[DebuggerStepThrough]

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.

0 komentarze: