בהמשך לשבוע המשתקף לטובה,
ראינו איך אפשר להשיג MethodInfo.
באופן די צפוי, אחד הדברים המגניבים שאפשר לעשות עם MethodInfo שכזה הוא להפעיל את הפונקציה שהוא מייצג.
איך זה מתבצע? בעזרת הפונקציה Invoke. פונקציה זו מאפשרת לנו לקרוא לפונקציה שמייצג הMethodInfo עם פרמטרים מתאימים.
אם הפונקציה שלנו סטטית, השימוש די פשוט:
|
|
אם הפונקציה שלנו לא סטטית, השימוש גם פשוט, אלא שהפעם בפרמטר הראשון אנחנו צריכים לציין את הinstance שעליו אנחנו מפעילים את הפונקציה:
|
|
מגניב, לא?
הדבר הזה די מגניב, ודי שימושי. אלא שבדומה לActivator.CreateInstance (ראו גם טיפ מספר 139), קריאה כזו למתודה היא לא כל כך יעילה. למען האמת זה עולה לנו בביצועים בסביבות כמה מיקרו-שניות. זה נשמע לא הרבה, אבל אם נקרא למתודה בצורה כזאת הרבה פעמים מתוך לולאה, אז נרגיש ירידה משמעותית בביצועים.
יש לבעיה זו פתרון ואותו נראה בהמשך…
המשך יום משתקף טוב