בהמשך לטיפ היומי של אתמול,
ראינו שאם יש לנו מתודה גנרית, ניתן להפוך אותה לExtension method:
|
|
ולקרוא לה כך:
|
|
ראינו בעבר (טיפ מספר 28) שאם יש לנו מתודה גנרית, ניתן לקרוא לה לרוב implicity, בלי ציון הפרמטרים:
|
|
הדבר נכון גם לגבי Extension Methods גנריים!
מאחר והקוד מתקמפל לאותו קוד נוכל לכתוב את הקוד הבא:
|
|
שימו לב ליופי שבדבר!
אם בפעם שעברה ראינו "שהוספנו" מתודה לכל IEnumerable<T> בלי לדעת בכלל מהו T, כעת אנחנו "הוספנו" מתודה לכל IEnumerable<T> ואנחנו בכלל לא צריכים לציין מהו T.
הדבר מאפשר לנו לקרוא בצורה מאוד נקייה לUtilities. שימו לב להבדל בקריאות בין הכתיבה הסטטית, לכתיבה של אתמול, לכתיבה החדשה.
כל המגבלות שאמרנו ביום ראשון על Extension Methods חלות גם פה (אי אפשר שניים עם אותה חתימה באותו שם באותו namespace וכו’), וכן המגבלות של הקומפיילר לפענח לבדו מהו T. (ראו גם הטיפ היום מספר 28)
המשך יום מורחב טוב