NET/שגרות - היכרות
תכנות בסביבת NET |
---|
|
שגרה (מוכרת גם בשם פונקציה, מתודה, או שיטה) היא מבנה תחבירי הקיים כמעט בכל שפת תכנות. זהו בלוק פקודות המקבל אפס או יותר פרמטרים, מבצע פעולה מסויימת, ועשוי להחזיר ערך שהוא תוצאת הפעולה.
בשפת #C ו-VB.NET, כל שגרה חייבת להיות בתוך מחלקה כלשהי. התחביר הכללי לשגרה הוא כדלהלן:
C#:
// method logic
VB.NET:
' function logic
modifier - יכול להיות אחת מרמות הגישה private, protected, protected internal, internal, public. בנוסף, אפשר להוסיף את אחת המילים השמורות static, abstract, virtual או override, שאת משמעויותיהן נראה בהמשך.
return_type - שם המחלקה של ערך ההחזרה, במידה והשגרה מחזירה ערך. בשפת C#, אם השגרה אינה מחזירה ערך, נציין ערך החזרה void (שהוא למעשה כינוי למבנה System.Void), המציין שהשגרה אינה מחזירה ערך. בשפת VB.NET, אם השגרה אינה מחזירה ערך נשתמש במילת המפתח Sub
במקום Function
:
VB.NET:
' subroutine logic
parameters - רשימה של משתנים עם שמות המחלקות שלהם, שהשגרה צריכה לקבל. פרמטרים יצוינו כשם הטיפוס של הפרמטר, ושם הפרמטר, בעזרתו נתייחס לפרמטר שהשגרה קיבלה. במקרה שהשגרה לא דורשת משתני קלט, נשאיר רשימה זו ריקה (אך נקפיד לציין את הסוגריים העגולות).
לדוגמה, השגרה הבאה מחזירה את סכום ערכי שני הפרמטרים שהיא מקבלת:
C#:
return a + b;
VB.NET:
Return a + b
רמות הרשאה
[עריכה]לכל מזהה במחלקה - משתנה, שגרה, או תכונה, יש רמת גישה, המציינת לאיזה חלקים אחרים בתוכנה מותר לגשת אליו. .NET תומך ברמות הגישה הבאות:
- private
- זו רמת הגישה הנמוכה ביותר, והיא רמת הגישה הניתנת אם לא צוינה רמת גישה אחרת. עם זאת, למען הבהירות, מומלץ לציין אותה במפורש, אם זו הרמה המבוקשת. מזהים בעלי רמת גישה זו נגישים רק מתוך המחלקה. למשתני מחלקה פשוטים ניתן בדר"כ רמת גישה זו, כדי לוודא שלמחלקה יש שליטה בלעדית על המשתנים של עצמה.
- protected
- מזהה בעל רמת גישה זו נגיש מתוך המחלקה, ומתוך מחלקות יורשות.
שגרות מופע
[עריכה]שגרות מופע הן שגרות שניתן להפעיל על עצם של מחלקה שאותחל. הקריאה לשגרה כזאת יעשה בעזרת שם של משתנה המייצג מופע של המחלקה.
שגרות סטאטיות
[עריכה]שגרה סטאטית היא שגרה הפועלת עצמאית, ולא על אובייקט מחלקה מסוים שאותחל. פנייה לשגרה סטאטית מתוך מחלקה אחרת תעשה ע"י קריאה לשם המחלקה, נקודה, וקריאה לשם השגרה. שגרה סטאטית יכולה לקבל נתונים ולהחזיר נתונים.