פורסם 2014 ביוני 1111 שנים איך יש לך בהתחלה שני צמתים? כמה פעמים עשית new?אני לא שואל כמה משתנים או כמה מצביעים יש. אני שואל כמה אובייקטים יש. כל פעם שאתה עושה new - נוצר אובייקט חדש.
פורסם 2014 ביוני 1111 שנים מחבר אז יש לי אובייקט אחד בהתחלה ואחרי זה יש לי 2 אובייקטים, כל פעם שאני מוסיף איבר לרשימה אני לפני זה יוצר צומת חדשה
פורסם 2014 ביוני 1111 שנים אוקי. בהתחלה יש לך אובייקט אחד בלבד. מה ה-next שלו? מה ה-data שלו? מה יקרה אם תנסה להדפיס את הרשימה ככה?
פורסם 2014 ביוני 1111 שנים מחבר בהתחלה בלי שאני מוסיף תוכל הnext של הhead הוא null אבל אז הלולאה לא אמורה לרוץ כי שמתי תנאי, תרוצי כל עוד temp שונה מnullזה אומר שהיא לא אמורה לרוץ... הלולאה אני מתכוון..והdata של הhead בהתחלה גם null כי לא הצבתי לתוכו אובייקט.. ואם אני אנסה להדפיס ברור שיגרור לי שגיאת ריצה, מאחר וhead בפעם הראשונה לא מכיל כלום
פורסם 2014 ביוני 1111 שנים מחבר רגע רגע רגע , תעשו לי קצת סדר שאני יוצא אובייקט, אני עושה לו new הוא מקצה לאותו אובייקט זיכרון בheap זה אני יודע , אבל אם לא עדכנתי לתוכו כלום אז הוא null אין בו כלום.. כל אובייקט שאני יוצר ולא עדכנתי לתוכו ערכים, אני מתכוון רק הקצאתי לו זיכרון אז הוא מכיל null עד שאני מכניס לתוכו נתונים זה לא נכון ?
פורסם 2014 ביוני 1111 שנים לא.אולי התת-אובייקטים שלא הם null, אבל ברגע שעשית new, האובייקט עצמו הוא לא null.
פורסם 2014 ביוני 1111 שנים ב#C אין סתם הקצאות זכרון בלי אתחול. כשאתה יוצר את האובייקט עם הבנאי ברירת המחדל, מה שיש בשדות שלו הוא מה שבנאי ברירת המחדל שלך עושה.
פורסם 2014 ביוני 1111 שנים מחבר אבל אם אני לא עשיתי בנאי למשל, ואני יודע שc# משתמש בבנאי הדיפולטי שלו ואז מה הוא שם באובייקט, במה הוא מאתחל אותו בדיוק?
פורסם 2014 ביוני 1111 שנים בנאי ברירת המחדל קורא לבנאי ברירת המחדל של מחלקת האב, אם יש כזה, וכו'.אם בכל השרשרת אין בנאים כלל, תקבל אתחול "ריק" - כלומר הזכרון של האובייקט יאותחל, אך השדות לא יאותחלו ויישארו עם ערכי ברירת המחדל שלהם: null עבור כל מה שהוא reference type וערך ברירת המחדל לvalue types (לטיפוסים הבסיסיים זה לרוב 0).
פורסם 2014 ביוני 1111 שנים מחבר אז אם יצרתי אובייקט ובתוכו יש 2 פרמטרים מסוג string? זה אומר שהאובייקט מאותחל בדינאמי ו2 הפרמטרים הפנימיים מאותחלים באפס במקטע המחסנית?ומה ההבדל בין ריק לnull אף פעם לא הבנתי מה ההבדל...
פורסם 2014 ביוני 1111 שנים אתה זורק פה כל מיני דברים לא קשורים לאוויר (מה קשורה המחסנית? מה זה "דינאמי"?) ומבלבל מונחים.למחלקה אין פרמטרים. פרמטרים (או ארגומנטים) זה מה שאתה מעביר לפונקציה. למחלקה יש שדות. כל שדה שלא שמת לא ערך כלשהו מאותחל לערך ברירת מחדל, כמו ש-qttp אמר. אם לדוגמה יש לך מחלקה שיש לה שני שדות מטיפוס string ועוד שדה מטיפוס int, אז כשתיצור מופע של המחלקה, ערכי המחרוזות של המופע הזה יהיו null, והערך של ה-int יהיה 0 - אלא אם תשים להם ערך אחר בבנאי.המחסנית בכלל לא קשורה כאן. המחסנית מחזיקה רק משתנים מקומיים. אם נגיד אתה עושה כזה דבר:MyClass x = new MyClass()אז המשתנה x מוגדר מקומית ונמצא על המחסנית, אבל הוא מצביע לאובייקט שנמצא ב-heap. נערך 2014 ביוני 1111 שנים על-ידי שניצל
פורסם 2014 ביוני 1111 שנים מחבר מקטע הזיכרון הדינאמי זה הheap, ומקטע המחסנית זה הlocal איפה שמאוכסנים המשתנים הפרמיטיביםאני ממש לא מבלבל http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx- - - תגובה אוחדה: - - -אני חשבתי שקוראים למשתנים שהם value types פרמטרים... ולפי מה שאני קראתי משתנים של מחלקה נקראים members או fields
פורסם 2014 ביוני 1111 שנים value type זה משתנים פרימיטיביים (ו-struct, אבל לא ניכנס לזה). זה לא קשור לפרמטרים של פונקציות - פרמטרים יכולים להיות value type או reference type.שדות של מחלקה אכן נקראים fields. המונח members כולל גם שדות וגם שיטות (methods) של המחלקה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.