בהמשך לטיפ של אתמול,
כפי שציינתי, Property מתקמפל מאחורי הקלעים למתודה עבור כל Accessor. (כלומר מתודה לGetter ומתודה לSetter)
גם Eventים וIndexerים מתקמפלים למשהו כזה מאחורי הקלעים. איפה הבעיה? נחזור לטיפ 147, שם ראינו שאנחנו יכולים לקבל את כל המתודות הPublicיות של טיפוס.
אם נריץ אותו על הטיפוס הבא
|
|
נקבל את הפלט המפתיע הבא:
|
|
בואו ננתח מה מפתיע כאן: נתחיל מהסוף – 4 המתודות האחרונות הן פשוט מתודות publicיות שקיבלנו מירושה מobject. המתודה החמישית מהסוף היא המתודה שמופיעה במחלקה שלנו. שאר מהמתודות הן המתודות שדיברנו עליהן אתמול שהProperties שלנו מתקמפלים אליהם.
אלא, שמבחינתנו לפעמים נרצה להבדיל בין איך נראה הקוד ואיך הוא מיוצג מאחורי הקלעים. כלומר, נרצה להתעלם לפעמים מהמתודות שProperty מתקמפל אליהן ולהתייחס רק למתודות שתוכנתו כמתודות.
למרבה המזל, נוכל לעשות זאת באמצעות הProperty של MethodInfo ששמו IsSpecialName. Property זה מציין לנו האם למתודה שם מיוחד, כלומר שם שנוצר כתוצאה מקימפול "קוד מטיפוס אחר" (כמו שהוסבר בהתחלה, Properties, Events וכו’)
|
|
כך נמענו מהפונקציות של הProperties שלא כל כך רצינו.
שיהיה המשך יום מיוחד