166. DebuggerHiddenAttribute

Attribute נוסף שקיים בFramework הוא Attribute ששמו DebuggerHiddenAttribute.

בדומה לObsoleteAttribute שמשפיע על איך הקומפיילר מתייחס לקוד שלנו שמסומן בו, DebuggerHiddenAttribute משפיע על איך הDebugger מתייחס לקוד שמסומן בAttribute זה.

לProperty/מתודה/Constructor שנשים מעליו את הAttribute ששמו DebuggerHiddenAttribute, לא נכנס בזמן דיבוג (בStep Into). גם לא נוכל לשים בו Breakpoint (כלומר, אם נשים בו Breakpoint, הוא לא יעצור בו).

לדוגמה,

1
2
3
4
5
[DebuggerHidden]
public static void CanNotBreakMe()
{
Console.WriteLine("Break here if you're a man!");
}

אם נשים Breakpoint בתוך הפונקציה, או ננסה לעשות Step-into אליה, לא נצליח. הBreakpoint לא יעצור.

למה זה טוב?

מדי פעם יוצא לנו לחולל מחלקות. אנחנו מצפים שבמחלקות המחוללות לא יהיו באגים (שהרי הן מחוללות), ולכן אין לנו אינטרס שידבגו אותן, שהרי אין בעלים לקוד זה, כי הוא מחולל.

לכן נפוץ לשים מעל מתודות של מחלקות מחוללות Attribute זה.

גילוי נאות: הכותב לא השתמש בAttribute זה במחלקות שחולל.

סוף שבוע לא חבוי

שתף