נניח שיש לנו מחלקת אב ומחלקת בת שיורשת ממנה.
נניח בנוסף שהמחלקת אב צריכה לקבל מאיזושהי סיבה אובייקט בConstructor שלה, למשל:
|
|
ונניח עוד הנחות נוקשות, שאין Constructor מתאים שמאתחל את כל הProperties החשובים לנו באובייקט, למשל
|
|
ולBoneProvider יש רק Constructor דיפולטי, או שאין לו Constructor שממלא את כל השדות שחשובים לנו.
כדי למלא את הProperties האלה בC# 2.0 היינו צריכים ליצור מתודה סטטית:
|
|
בC# 3.0 נוכל לחסוך ולהשתמש בObject Initializer כדי להעביר את הפרמטרים מעלה בצורה הבאה:
|
|
שימו לב ששימוש זה חוסך לנו מתודה, אבל עשוי לפגוע בקריאות, לכן כדאי לשקול זאת.
בנוסף, פתרון זה טוב רק במידה וכל האתחולים נעשים דרך Properties.
אם קיים אתחול באמצעות מתודה (למשל OpenConnection()), נצטרך לחזור לפתרון של המתודה הסטטית.
המשך שבוע השלמות טוב