הגדרת מתודות
חלק מהיחידה יסודות במסלול ה-C# של Coddy. שיעור 49 מתוך 69.
מתודה היא רצף של קוד שיש לו שם. מטרתה של מתודה היא לעשות שימוש חוזר בקטע קוד פעמים רבות.
לדוגמה, כדאי להסתכל על הקוד הזה:
Console.WriteLine("Welcome to Coddy");
Console.WriteLine("New session...");
Console.WriteLine("Welcome to Coddy");
Console.WriteLine("Another session...");
Console.WriteLine("Welcome to Coddy");אנחנו משתמשים שוב ושוב באותו קוד Console.WriteLine("Welcome to Coddy"). בעיה נוספת בקוד הזה היא שאם נרצה לשנות את ההודעה: Welcome to Coddy למשהו אחר, כמו Welcome aboard, נצטרך לשנות 3 שורות קוד שונות. כדי לפתור את הבעיה הזאת, נשתמש במתודות.
כדי להצהיר על מתודה, משתמשים בתחביר הבא:
access_modifier [modifiers] return_type method_name(parameters) {
// קוד
}בדוגמה שלנו, ניצור מתודה בשם Greet והיא תיראה כך:
public static void Greet() {
Console.WriteLine("Welcome to Coddy");
}אם נפרק את זה:
publicהוא מציין גישה (קובע מי יכול להשתמש בשיטה הזאת)staticהוא מציין (פירושו שהשיטה שייכת למחלקה עצמה)voidהוא סוג הערך המוחזר (פירושו שלא מוחזר שום ערך)Greetהוא שם השיטה()מכיל פרמטרים (ריק כאן)
לעת עתה, כתבו תמיד public static לפני שם השיטה שלכם — נסביר בהמשך מה פירושה של כל מילה.
כדי להשתמש במתודה / לקרוא לה / לבצע אותה, נכתוב Greet();:
Greet();
Console.WriteLine("New session...");
Greet();
Console.WriteLine("Another session...");
Greet();התוצאה תהיה זהה לתוצאה שלמעלה.
הערה: ב־C#, לסדר ההגדרות של המתודות בתוך מחלקה אין חשיבות. המהדר קורא תחילה את המחלקה כולה, ולכן אפשר לקרוא למתודה לפני ההגדרה שלה בקוד המקור או אחריה: שתי האפשרויות תקינות.
לדוגמה, שתי האפשרויות האלה נכונות ב-C#:
// המתודה מוגדרת תחילה, ואז נקראת public static void Greet() { Console.WriteLine("Welcome to Coddy"); } Greet(); Console.WriteLine("New session..."); Greet();
// המתודה נקראת תחילה ומוגדרת בהמשך — תקף גם ב-C# Greet(); Console.WriteLine("New session..."); Greet(); public static void Greet() { Console.WriteLine("Welcome to Coddy"); }
אתגר
קלכתבו תוכנית שמקבלת קלט אחד, מספר. מספר הקלט מציין כמה פעמים לבצע את המתודה הבאה.
צרו מתודה שמחשבת את הסכום של כל המספרים בין 1 ל־1000 (כולל) ומדפיסה אותו; תנו למתודה שם לפי בחירתכם.
נסו בעצמכם
using System;
public class Program {
// הצהרת מתודה
public static void SumNumbers() {
// השלימו את המתודה
}
public static void Main(string[] args) {
int n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++) {
// קראו למתודה n פעמים
}
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה אחרי הפעולהקיצורים אריתמטיים10מתודות (פונקציות)
הגדרת מתודותפרמטרים של מתודותטיפוסי החזרהפרמטרים אופציונלייםסיכום — פונקציית אימותמתודות ללא ערך החזרה5אופרטורים חלק 2
אופרטורי השוואהאופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2סיכום — לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר C# אונליין