Syntax של Object Initializer שהוצג בC# 3.0 הוא מאוד נוח ומאפשר לאתחל אובייקט בצורה יותר ברורה מקודם. (ראו גם טיפ מספר 87, 88)
הבעיה היא שאפשר להשתמש בו רק במקרה שאנחנו מאתחלים אובייקט דרך Constructor – אם אנחנו מאתחלים אובייקט בצורה אחרת, למשל איזשהו Factory, לא נוכל להשתמש בSyntax כזה לאתחול האובייקט.
אפשר כמובן להתווכח אם עד כמה זה נכון לעשות משהו כזה, אבל נראה לי שזה צורך יחסית נפוץ.
מה שאנחנו יכולים לעשות זה משהו כזה:
|
|
שימו לב שהמשתנה p הוא משתנה שנמצא בתוך Scope פנימי, ולכן אנחנו יכולים לעשות מספר אתחולים כאלה:
|
|
הפעולה הזאת מחקה קצת את הKeyword ששמו With מVB, למי שמכיר.
המשך יום מאותחל לטובה.