מדריך C# – תכנות מונחה עצמים: שימוש ב- Constructors
בנאי (Constructor. נקרא גם בקיצור c'tor) הוא למעשה פונקציה לבנייה התחלתית של האובייקט. הוא מופעל אוטומטית בעת יצירת מופע מהמחלקה (אובייקט) באמצעות הפקודה new:
Person p = new Person();
המטרה של בנאי היא לבצע פעולות בזמן יצירת האובייקט, כגון: אתחול משתנים.
מספר דברים שצריך לדעת לגבי בנאי:
- שם הבנאי יהיה זהה לשם המחלקה המכילה אותו (case sensitive).
- בנאי לא מחזיר ערך (גם לא void)
- בנאי יכול לקבל פרמטרים
- ניתן להעמיס (overload) בנאי (כך שלכל מחלקה יכולים להיות מספר בנאים. לכל הבנאים יהיה שם זהה, ההבדל יהיה במספר הפרמטרים שהבנאי מקבל ובסוגם).
- ניתן לקרוא מבנאי אחד לאחר
- בקריאה מבנאי אחד לאחר חובה לבצע זאת בשורה הראשונה של הבנאי
- אם לא נכתוב אף בנאי במחלקה יהיה בנאי default (ברירת מחדל) שלא מקבל פרמטרים ולא מבצע שום פעולה.
- מספיק שנכתוב בנאי אחד במחלקה (לא משנה עם איזה פרמטרים) אנו מוותרים על הבנאי ברירת מחדל.
דוגמא ליצירת בנאי שמקבל פרמטרים:
public Person(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
שימו לב שההתייחסות היא למשתנה firstName של הפונקציה (המוגדר בכותרת הפונקציה) ולא של המחלקה. אם נרצה לגשת למשתנה המחלקה ניתן לכתוב: this.firstName
הפעלת הבנאי שמקבל פרמטרים:
Person p = new Person("Lior", "Zamir");
יצירת בנאי המקבל פרמטרים ומעביר את חלקם לבנאי הקודם (שימו לב לשימוש במילת המפתח this):
public Person(string firstName, string lastName, int id)
: this(firstName, lastName)
{
Id = id;
}
במקרה זה, הבנאי מקבל שלושה פרמטרים, מהם הוא שולח שניים לטיפול בבנאי הראשון, כך שנותר לו לטפל רק בפרמטר השלישי (id).
תגובות בפייסבוק