פורסם 2013 ביוני 2412 שנים לא בדיוק הבנתי על המדריך. הזהאפשר הסבר עם דוגמת קוד המסבירהאת זה?תודה.9.5. Default Constructorאם לא מגדירים עבור מחלקה כלשהי ב-C# פונקציה בונה, הקומפיילר מספק פונקציה בונה משלו כברירת מחדל. פונקציה זו, איננה מקבלת פרמטרים, ומאפסת את כל הערכים לאפס, את כל המשתנים הבוליאניים ל-false ואת כל האובייקטים ל-null.
פורסם 2013 ביוני 2412 שנים מחבר בוא נתחיל עם זה - אתה יודע להסביר לי מה זאת מחלקה ומה זה constructor?מחלקה זה משתנים ופונקציותהיוצרים אובייקט(מופעים)constructor :זה פונקצייה שתפקידה לאתחלאת האובייקט ברגע שהוא נוצר.
פורסם 2013 ביוני 2412 שנים אוקי, ומה קורה אם אתה מגדיר למחלקה constructor שלא מקבל פרמטרים, והתוכן שלו ריק? מה הבנאי הזה עושה?
פורסם 2013 ביוני 2412 שנים מחבר אוקי, ומה קורה אם אתה מגדיר למחלקה constructor שלא מקבל פרמטרים, והתוכן שלו ריק? מה הבנאי הזה עושה?נראה לי שהתשובה היא מה ששאלתיבראש האשכול.אבל לא הבנתי מהי הכוונה ב-constructorלאתחל את האובייקט ברגע שהואנוצר?
פורסם 2013 ביוני 2412 שנים ה-constructor שאתה כותב בד"כ, איך הוא נראה? כלומר, מה הוא עושה?הוא אמור לשים ערכים בשדות שלך ואולי לעשות עוד כמה דברים. אם אין לך constructor אז הקומפיילר יוצר אחד בעצמו. מה הוא עושה? כלום.אם הכרזת על שדה מטיפוס int, הוא כמובן ישא את הערך 0 (כי לא הגדרת אחרת. זהו ערך ברירת המחדל). באותו אופן משתנים מטיפוס boolean יקבלו false וכל טיפוס שאינו פרימיטיבי יאותחל ע"י constructor ברירת המחדל שלו.
פורסם 2013 ביוני 2412 שנים מחבר אבל לא הבנתי מה הכוונה פונקציה בונה היא פונקציה הנקראת ברגע שאובייקט חדש נוצר, ותפקידה הוא אתחול האובייקט.?מה הכוונה אתחול?
פורסם 2013 ביוני 2412 שנים אתחול זה הגדרה ראשונית של האובייקט - לשים בשדות שלו (המשתנים שהגדרת עבורו) ערכים התחלתיים. כל שדה שלא ביצעת לו אתחול מאותחל באופן אוטומטי ע"י ערך ברירת מחדל, כמו שהוסבר בפסקה שציטטת.
פורסם 2013 ביוני 2412 שנים תסתכל על הדוגמה הבאה:Complex c1 = new Complex();Complex c2 = new Complex(2, -1);יצרתי 2 משתנים מטיפוס מספר מרוכב. מה יש במשתנה c2? הבנאי של Complex מקבל כאן שני ארגומנטים - הערך הממשי והערך המדומה. את שני הערכים הוא שומר באופן כלשהו, תלוי איך המחלקה מממומשת.ומה יש ב-c1? הבנאי לא מקבל ארגומנטים. בנאי כזה (יכולים להיות מספר בנאים למחלקה) עושה מה שקבעת לו במידה ולא הוכנסו ערכים לבנאי. הבנאי יכול להיות מממומש ככה:public class Complex{ private double re; private double im; public Complex() { re = 0; im = 0; }}ואז קבעת שמשתנה מטיפוס מספר מרוכב בברירת מחדל הוא 0+0i. אם לא היית מגדיר בנאי כזה (או שהיית מגדיר כזה ריק) אז הקומפיילר היה קובע ערכים למשתנים re ו-im. אילו ערכים? לכל טיפוס ערך ברירת מחדל משלו. נערך 2013 ביוני 2412 שנים על-ידי Gil28
פורסם 2013 ביוני 2612 שנים מחבר אני רוצה ליצור בעצמי את הקודשמבוצע על עיקרון פונקצייה בונהולהריץ אותו בויזואל סטודיו.אולי ככה אני יבין יותר.איך עושים קוד כזה?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.