NET/מבנים: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
צחי (שיחה | תרומות)
מ ←‏תחביר: תבנית:NET/CodeBlock
צחי (שיחה | תרומות)
מ ←‏בנאי: תקלדה, תבנית:NET/CodeBlock
שורה 22:
 
==בנאי==
המהדר יוצר לכל מבנה בנאי ברירת מחדל (שאינו מקבל פרמטרים) באופן אוטומטי, המאתחל את משתני המופע לערכי ברירת המחדל שלהם (0 למספרים, false למשתנים בוליאניים, null למשתנים מסוג ייחוס). לכן לא ניתן לכתוב משתנהבנאי ברירת מחדל בעצמנו, אך נוכל לכתוב בנאי המקבל פרמטרים, למשל כדי לבצע איתחול משלנו למשתנים אלה.
 
בנוסף, לא ניתן לאתחל משתנה מופע של בנאי עם הכרזתו, כמו שניתן לבצע במחלקה. הקוד הבא אינו תקף:
{{NET/CodeBlock
<source lang="csharp">
|cs=
sturct MyStruct {
{{NET/Code|sturct|Keyword}} {{NET/Code|MyStruct|Class}} {
private String = "some string";
{{NET/Code|&nbsp;&nbsp;private|Keyword}} {{NET/Code|String|Class}} = {{NET/Code|some string|String}};<br>
}
}}
</source>
במקום זאת, יש לבצע את האיתחול בתוך הבנאי.
 
==הורשה==
יכולתם של מבנים לרשת ולהוריש מוגבלת. מבנים יכולים לממש ממשקים (Interfaces), אך הם אינם יכולים לרשת ממחלקות אחרות או ממבנים אחרים, ולא ניתן לרשת מהם. הם יורשים ישירות ממחלקת ValueType, כאמור.