נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: מה זה פעולה בונה ? C#

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
:)
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 June 2007 בשעה 13:56 | IP רשוּם
ציטוט :)

אני לומד עצמיםב C# והיה משהו כזה שלכלות עצם צריך להיות פעולה בונה ולא הבנתי למה צריך אותה אם זה גם ככה עובד בלעדיה, מהי עושה ומתי צריך לזמן אותה ?
חזרה לתחילת העמוד הצג את כרטיס החבר של :) חפש הודעות אחרות של :) בקר בדף הבית של :)
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 June 2007 בשעה 16:07 | IP רשוּם
ציטוט אורח

בכל פעם שיוצרים מופע של מחלקה (מופע=אובייקט) צריך הרי לאתחל אותו.

contractor זאת פעולה שמאתחלת (ודואגת לקבל עבורו זיכרון)

ובאמת זה מסוג השאלות שלא צריך להיות בטטות ו-:
או לקרוא כי יש הגדרה בכל מקום או לחפש בגוגל.
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
:)
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 June 2007 בשעה 16:42 | IP רשוּם
ציטוט :)

אבל :
א) למה צריך לאתחל אותה אם גם ככה זה עובד בלי זה?
ב)מתי צריך להאתחל אותה (לעשות זימון של הפונקציה המאתחלת) ?
חזרה לתחילת העמוד הצג את כרטיס החבר של :) חפש הודעות אחרות של :) בקר בדף הבית של :)
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 June 2007 בשעה 17:06 | IP רשוּם
ציטוט אורח

ב - נגיד שיש לך מחלקה

קוד:
class person{
  public string Name;
  public int Age;
  public person Father;
  public person Mother;
  public person[] Family;

  public person(string Name)
  {
    this.Name = Name;
  }
}


אם תגדיר

קוד:
person p;
p.Name = "guest";


תקבל שגיאה שהמשתנה לא לאותחל ו-null refrence וכו'...כי אפילו לא מוקצה עבורו זכרון.

לעומת זאת אם תקרא לבנאי

קוד:
person p = new person();


יש לך person חדש ותפקודי...

אתה יכול אפילו להגיד
קוד:
p.Father = new person();
אם משעמם לך...

ועכשיו לעניין, עד עכשיו השתמשת בבנאי ברירת מחדל, אתה יכול לבנות אחד לבד
בשביל לחסוך אתחול כפול (גם בקוד שיוצר אובייקט וגם באתחול) ובשביל נוחיות אתה
יכול לבנות בנאי שמקבל פרמטרים ולאתחל לפיהם.

ואתחול זה לא דווקא לשים בתכונה ערך ריק, זה יכול להיות כל דבר.

ועכשיו לבסוף אני אחזור על הקריאה שלי, זה בקצרה בשביל הפורום, תקרא ואל תתעצל יא בטטה!
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
:)
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 June 2007 בשעה 18:27 | IP רשוּם
ציטוט :)

תודה על ההסבר אבל לא הבנתי פעולה הונה זה הפעולה שמתבצעת כאשר כותבים ?
קוד:

paerson a=newperson();


ושאני בונה פעולה בונה אני פשוט צריך לשים 0 בכול המספרים FALSE בכול הבוליאנים וכלה המחרוזות לעשות "" ?
חזרה לתחילת העמוד הצג את כרטיס החבר של :) חפש הודעות אחרות של :) בקר בדף הבית של :)
 
_____
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 June 2007 בשעה 18:44 | IP רשוּם
ציטוט _____

אני שמח שהבנת בדיוק את מה שהוא אמר
ממש כל מילה ומילה

וזה לא newperson
new - זאת מילה שמורה
אז אתה קורא ל
new person()
שזה גם הגיוני לקרוא לזה new, זה מחזיר לך מופע חדש מהסוג

וההבנה שלך למה צריך לעשות בונה גם די מדהימה

עכשיו אני ממליץ ש (וסליחה על הבוטות)
תקרא

עמ' 15-16, למרות שלא יזיק לקרוא הכל
חזרה לתחילת העמוד הצג את כרטיס החבר של _____ חפש הודעות אחרות של _____ בקר בדף הבית של _____
 
:)
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 June 2007 בשעה 19:20 | IP רשוּם
ציטוט :)

אני לא יכול אתחל ככה ?
קוד:

class Malben
    {
        private int oreh=0;
        private int rohav=0;

}


וזה עובד לי רק אם הכול ב public מרגע שאני עושה private זה כבר לא מזהה את זה ב MAINCLASS
חזרה לתחילת העמוד הצג את כרטיס החבר של :) חפש הודעות אחרות של :) בקר בדף הבית של :)
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה