פורסם 2013 באוגוסט 312 שנים שפה - c# object bb = new object();bb = 1; Console.WriteLine(bb.GetType()); Console.WriteLine(bb.GetType().IsByRef); Console.WriteLine(bb.GetType().IsValueType);output:system.int32falsetrueהשאלה האם bb נמצא ב STACK או HEAP אחיי אומר שזה נמצא ב HEAPאבל GETTYPE נותן משהו אחר ? נערך 2013 באוגוסט 312 שנים על-ידי aviv00
פורסם 2013 באוגוסט 312 שנים מחבר אם אתה משתמש ב-NEW זה יהיה על ה-HEAP. מה זה קשור בכלל ל-gettype?object bb ();bb = 1;ז"א ככה זה ב STACK ?לא קשור רק בשביל מעקביש פקודה שנותנת מענה איפה המשתנה נמצא ? נערך 2013 באוגוסט 312 שנים על-ידי aviv00
פורסם 2013 באוגוסט 312 שנים תקן בבקשה את הקוד שלך (שים אותו בצורה מסודרת בתג קוד).חוץ מזה, ציין בכותרת באיזו שפה את כותב. נערך 2013 באוגוסט 312 שנים על-ידי שניצל
פורסם 2013 באוגוסט 312 שנים מחבר תקן בבקשה את הקוד שלך (שים אותו בצורה מסודרת בתג קוד).חוץ מזה, ציין בכותרת באיזו שפה את כותב.הוספתי את שפת תכנות אגב עשיתי bb = 1L וזה שינה אותו ל LONG אז זה בטח ב HEAP אם זה משתנה למרות שלא השתמשתי ב new נערך 2013 באוגוסט 312 שנים על-ידי aviv00
פורסם 2013 באוגוסט 312 שנים מחבר STACK אי אפשר לשנות בריצהHEAP אפשר לכן אם אתה מבצע שינוי TYPE אז הוא חייב להיות ב HEAP זה מה שאני חושבאם תעשה int ii = 1Lתקבל שגיאה כי אי אפשר לשנות את ה TYPE אחרי שהגדרת אותו ב STACKב HEAP אפשר.... ? או שאני טועה
פורסם 2013 באוגוסט 312 שנים אה.....מה?אין שום הגיון במה שכתבת.הסיבה שאפשר לעשות דבר כזה:Object x = new Object();x = 1L;היא כי x הוא מטיפוס Object שיכול להצביע לכל דבר, כולל int ו-long. אין פה שום קשר ל-stack/heap.אם תנסה לשים ערך long בתוך int אז זה לא יתקמפל כי לא ניתן להמיר long ל-int בלי המרה מפורשת. מצד שני, אם תנסה לשים ערך int בתוך long אז זה יעבוד בלי שום בעיה. נערך 2013 באוגוסט 312 שנים על-ידי שניצל
פורסם 2013 באוגוסט 312 שנים מחבר אז רגע אתה מתכוון שאם אני עושה OBJECT ומכניס משתנה פרמיטיבי הוא יהיה ב STACK זאת אומרת למקום אחר ב STACK ואם אחרת הוא יקשר אותו ל HEAP ?פרמיטיביstack[object] to stack[int]לא פרמיטיבי stack[object] to heap[list] נערך 2013 באוגוסט 312 שנים על-ידי aviv00
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.