הכרנו פעם שעברה קצת את MethodInfo.
יש מספר דרכים להשיג MethodInfo. הדרך הקלה ביותר היא להשתמש בפונקציה GetMethods של Type.
כפי שראינו פעם שעברה, פונקציה זו מחזירה לנו את כל הMethodInfoים הpublic שיש לTypeמסוים. (גם סטטיות וגם של instance)
אבל אם לא מעניינות אותנו כל המתודות? נוכל להשתמש בoverload של הפונקציה GetMethods שמקבל BindingFlags. זהו enum שבעזרתו אנחנו מסוגלים לציין את המתודות שאנחנו מעוניינים לחפש:
למשל:
|
|
יחזיר לנו את כל המתודות שהן public ושל instance של הטיפוס int.
|
|
יחזיר לנו את כל המתודות שהן לא public (כן, אפשר לעשות את זה!)
|
|
לא יחזיר לנו כלום, כי לא ציינו אם אנחנו מעוניינים בפונקציות סטטיות או של instance.
(ראו גם טיפ מספר 22 אם אתם לא מכירים Enum flags)
דרך נוספת להשיג MethodInfo היא באמצעות הפונקציה GetMethod:
|
|
זו פונקציה המחזירה לנו MethodInfo לפי שם של פונקציה. לפעמים, לא מספיק לדעת לאיזה פונקציה התכוונו רק לפי השם שלה, אלא צריך לדעת פרטים נוספים, כגון הפרמטרים שלה.
|
|
לכן יש Overload שמאפשר לנו לציין את סוג הפרמטרים שאנחנו מצפים שיהיו לפונקציה:
|
|
יש עוד כמה overloadים שמאפשרים לנו להיות יותר ספציפיים ולהגיד גם את הBindingFlags שלחפש בעזרתם את המתודה וכו’.
שיהיה המשך יום משתקף טוב