פעולות סטטיות מול פעולות פנימיות של עצם ב-C#
הסבר פשוט, ברור ומעשי על אופן הכתיבה, הזימון וההבדלים ביניהן.
פעולות סטטיות - מעל ה-Main
פעולות רגילות שנכתבות עם המילה static באותה מחלקה של התוכנית הראשית. לרוב הן נכתבות מעל הפעולה הראשית Main.
מתוך ה-Main קוראים להן ישירות בשמן בלבד. לדוגמה:
CalculateSum(a, b);הן עובדות רק עם המידע שהן מקבלות בסוגריים - הפרמטרים. אין צורך ליצור עצם באמצעות new.
פעולות פנימיות של עצם
פעולות שנכתבות בתוך מחלקה חדשה שיצרנו, למשל תלמיד או שעון, ללא המילה static. הן נמצאות בקובץ המחלקה של העצם.
כדי לקרוא לפעולה יש ליצור עצם באמצעות new ולפנות לפעולה דרך שם העצם ונקודה. לדוגמה:
s1.PrintDetails();הפעולות פועלות ישירות על הנתונים והתכונות האישיות של אותו עצם מסוים.
טבלת השוואה
| מאפיין | פעולה סטטית | פעולה פנימית של עצם |
|---|---|---|
| היכן כותבים אותה? | באותה מחלקה של התוכנית, מעל ה-Main. | בתוך מחלקת התבנית שיצרנו לעצם. |
| המילה static | מוגדרת עם המילה static. | מוגדרת ללא המילה static. |
| כיצד קוראים לה? | בשמה בלבד: DoWork(); | דרך העצם שיצרנו: myObj.DoWork(); |
| צורך ב-new? | אין צורך בעצם כדי להפעילה. | חובה ליצור עצם חדש תחילה באמצעות new. |
| על אילו נתונים עובדים? | הערכים שמועברים בסוגריים - הפרמטרים. | השדות והתכונות השמורים בתוך העצם עצמו. |
כלל אצבע להכרעה
אם הפעולה צריכה לבצע חישוב כללי ומקבלת בסוגריים את כל מה שנחוץ לה, נגדיר אותה כפעולה סטטית מעל ה-Main ונקרא לה בשמה בלבד.
אם הפעולה שייכת לעצם מסוים וצריכה לגשת לתכונות שלו או לשנות אותן, נגדיר אותה כפעולה פנימית בתוך המחלקה, ללא static.