עד כה התעסקנו בעיקר בשימוש במחלקה Type ולכן בעיקר ביחסים בין מחלקות/ממשקים.
דבר נוסף שאפשר לעשות באמצעות Reflection הוא לגלות מידע על דברים שמרכיבים את הType כמו הMemberים שמרכיבים Type.
למשל, נניח ויש לנו טיפוס, אנחנו מסוגלים למצוא את כל המתודות שהוא מכיל:
|
|
שימו לב שבעצם רשמנו את כל המתודות שיש לint. מגניב ביותר!
אז מהו בעצם אותו MethodInfo המסתורי?
כפי שאפשר לנחש, זהו אובייקט המייצג את המתודה שלנו – או במילים יותר יפות – הMetaData של המתודה שלנו.
מה אפשר לעשות איתו? דברים די הגיוניים, למשל לגלות את הפרמטרים שלו:
|
|
או לגלות את ערך ההחזר שלו:
|
|
אפשר לבדוק גם האם המתודה סטטית:
|
|
או לבדוק האם היא public וכו’:
|
|
מה שמעניין לבדוק זה מה קורה כשאנחנו יוצרים מתודה שמקבלת אובייקטים בout או בref.
למשל:
|
|
אם נריץ את אותו קוד:
|
|
שימו לב ל&. מזכיר קצת את ימי C++
שיהיה שבוע השתקפויות טוב