דבר ראשון, ההבדל הכי גדול. מחלקה היא REFERENCE TYPE ומבנה הוא VAULE TYPE. מכאן נובעים כל ההבדלים. שאתה יוצר מחקלה נוצר מקום ב HEAP והפניה למחלקה הזאת ב STACK שלך. שאתה יוצר מבנה אין שום קשר לHEAP וכל המבנה יושב על הSTACK.הבדלים עיקריים:
1. במבנה אתה לא חייב לכתוב בנאי(קונסטרקטור) - מסיבה מאוד פשוטה, לא חייבים לאתחל אותו! אתה לא צריך לכתוב משפט NEW על מבנה. אתה יכול לעשות דבר כזה:
struct something { public int i; }something myStruct; myStruct.i = 3;
|
אם היית מנסה לעשות אתז ה במחלקה היית מקבל מיליון שגיאות, שאין קונסטרטור, שלא עשית אתחול, וכו' וכו' וכו'. זה נובע מזה שאין צורך ליצור "מקום" לאובייקט חדש, שכן אם יצרנו את הSTRUCT זה ברור שהוא ישב במחסנית ולא ב HEAP ולכן אין צורך ליצור אובייקט אלא רק הפניה.
אגב, במבנים גם אין דיסרקטורים(מפרקים).
2. משהו מאוד חשוב: אי אפשר לרשת ממבנה, ואי אפשר לגרום למבנה לרשת ממשהו אחר. אי אפשר לעשות מבנים אבסטרקטים, וכל מבנה הוא בהכרח sealed.
3. הבדל חשוב נוסף: בSTRUCTS אין אתחול אוטומטי של משתנים. כלומר, אם במחלקה תשים int i הוא יקבל את הערך 0 לדוגמה אוטומטי, bool some יקבל FALSE וכו'. ב STRUCT אתה תקבל שגיאת קומפילציה שאין ערך למשתנים.
בהצלחה 
\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser