เมธอด
ในบทนี้ เราจะพูดเกี่ยวกับเมธอดในภาษา C# คุณจะได้เรียนวิธีการสร้างเมธอดและการเรียกใช้มัน
เมธอด คืออะไร
ในภาษา C# เมธอดนั้นเป็นส่วนหนึ่งของโปรแกรมเพื่อให้ดำเนินการบางอย่าง กล่าวอีกนัยหนึ่ง มันคือส่วนย่อยของโปรแกรมที่ถูกเรียกโดยโปรแกรมหลักและมันสามารถนำกลับมาใช้ซ้ำได้ การสร้างเมธอดช่วยให้ลดจำนวนของซอสโค้ดที่เขียนขึ้นได้ การนำกลับมาใช้ใหม่ และทำให้ง่ายในการแก้ไขโปรแกรมในภายหลัง
เมธอด ในอีกคำหนึ่งที่รู้จักกันก็คือ ฟังก์ชัน ดังนั้นอย่างสับสนระหว่างสองคำนี้ แต่คำว่าเมธอดใช้สำหรับฟังก์ชันที่อยู่ในคลาส (การเขียนโปรแกรมเชิงวัตถุ) อย่างไรก็ตามในบทเรียนนี้เราอาจจะใช้ทั้งสอง
เมธอดในภาษา C#
ในภาษา C# จะมีเมธอดอยู่สองประเภท แบบแรกคือ predefined method มันคือเมธอดที่สร้างมากับไลบรารี่มาตรฐานของภาษา C# ซึ่งมันจะอยู่ในคลาส ยกตัวอย่างเช่น System.WriteLine()
นี่บ่งบอกว่าเมธอด WriteLine นั้นอยู่ในคลาส System และเมธอดประเภทที่สองคือ user-defined method เป็นเมธอดที่เขียนขึ้นเองโดยโปรแกรมเมอร์ ในบทเรียนนี้ เราจะพูดเน้นในแบบที่สอง
User-defined method
User-defined method (เมธอดที่สร้างโดยผู้ใช้ ) นั้นเป็นเมธอดที่ถูกสร้างขึ้นเพื่อทำงานบางอย่างโดยผู้ใช้ เพราะว่าภาษา C# นั้นเป็นภาษาในการเขียนโปรแกรมเชิงอ็อบเจ็ค เมธอดนั้นจะต้องอยู่ในคลาส คุณจะได้เรียนรู้เกี่ยวกับคลาสภายหลังในบทเรียนนี้
ในการสร้างเมธอด มันมีรูปแบบดังนี้:
access_modifier type identifier (parameter1, parameter2, ... ) {
// statements
return result;
}
รูปแบบนี้ถูกใช้เมื่อคุณต้องการสร้างเมธอดที่มีการส่งค่ากลับ (return) ไปยังส่วนของโปรแกรมที่เรียกใช้มัน มาดูอีกรูปแบบหนึ่ง
access_modifier void identifier (parameter1, parameter2, ... ) {
// statements
}
รูปแบบนี้จะถูกใช้เมื่อไม่มีค่าที่จะส่งหลับไป คุณสังเกตุในคำสั่งvoid
นั้นจะถูกใช้แทน return type
ต่อไป เราจะอธิบายส่วนต่างๆ ของการประกาศเมธอด
- access_modifier:บ่งบอกถึงระดับการเข้าถึงได้ของเมธอดมรคลาส โดยจะมีอยู่ 4 แบบคือ
public
protected
private
และinternal
ถ้าหากคุณปล่อยให้มันว่างปล่าวนั้นจะเป็นแบบprotected
- **type **: เป็นประเภทของข้อมูลที่คุณอยากจะส่งค่ากลับ มันสามารถเป้นชนิดข้อมูลพื้นฐานในภาษา C# หรือเป็นอ็อบเจ็ค เช่น
int
float
String
Class_Name เป็นต้น เมื่อเมธอดไม่มีค่าอะไรที่จะส่งกลับเราจะใช้คำสั่งvoid
แทนเหมือนที่คุณเห็นในรูปแบบที่สอง - parameters: เป็นค่าของตัวแปรที่ส่งเข้ามาในเมธอด และเป็นทางเลือก
- **return ** เป็นคำสั่งที่ใช้ส่งค่าข้อมูลกลับ ยกตัวอย่างเช่น เมธอดที่มี return เป็น
int
นั้นค่าที่ส่งกลับจะต้องเป็นตัวเลขจำนวนเต็ม - static: คำสั่ง
static
ถูกใช้ประกาศหลังจาก access modifier ถ้าเมธอดที่ถูกสร้างขึ้นนั้นจำเป็นที่จะต้องแชร์บางอย่างที่เหมือนกันสำหรับทุกๆ อ็อบเจ็คที่สร้างจากคลาส
สร้างเมธอด
ในการที่จะสร้างเมธอด คุณจะเป็นต้องทำตามรูปแบบข้างบน มาดูตัวอย่างวิธีการสร้างเมธอดในภาษา C#
using System;
class CreatingMethod
{
static void Main(string[] args)
{
String name = "Marcus";
int sex = 0;
String sport= "hockey";
displayBio(name, sex, sport);
displayBio("Janifer", 1, "swimming");
displayBio("Carl", 0, "football");
}
static void displayBio(String n, int s, String sp) {
if (s == 0) {
Console.WriteLine(n + " has " + sp + " as his favorite sport.");
} else {
Console.WriteLine(n + " has " + sp + " as her favorite sport.");
}
}
}
ในตัวอย่าง เราได้สร้างเมธอดเพื่อแสดงกีฬาโปรดของบุคคล สังเกตุว่าเมธอด main นั้นสร้างจากคำสั่ง static
ดังนั้นเมธอดที่เรียกใช้จากเมธอด Main ก็จะต้องสร้างจากคำสั่ง static
ด้วยเช่นกัน
เราได้ตั้งชื่อให้กับเมธอดของเราว่า displayBio
และมันมี 3 พารามิเตอร์ที่ส่งเข้าในเมธอดนี้ เราเรียกใช้เมธอดนี้ในเมธอด Main และเราจะส่งอากิวเมนต์ให้สอดคล้องกันกับลำดับพารามิเตอร์ของมัน คำสัง void
นั้นหมายความว่าเมธอดนี้จะไม่มีการส่งค่ากลับไป เนื่องจากว่าเราต้องการแค้นำค่ามาแสดงผลในเมธอดเท่านั้น
Marcus has hockey as his favorite hobbie.
Janifer has swimming as her favorite hobbie.
Carl has football as his favorite hobbie.
และนี่เป็นผลลัพธ์ของโปรแกรมที่แสดงชื่อ เพศ และกีฬาโปรดในเมธอด
ต่อไปมาดูตัวอย่างการสร้างเมธอดที่มีการส่งค่ากลับ
การสร้างเมธอดที่มีการส่งค่ากลับ
โดยทั่วไปแล้ว เมธอดนั้นจะต้องมีค่าที่จะส่งกลับไปนำไปใช้ในส่วนที่ถูกเรียกของโปรแกรม คิดว่าเมธอดเป็นเหมือนที่สำหรับการทำงานบางอย่างและส่งแค่ผลลัพธ์กลับไปเมื่อมันทำงานเสร็จสิ้น
using System;
class CreatingMethod2
{
static void Main(string[] args)
{
int a = 10;
int b = 25;
Console.WriteLine(getText(a) + getSum(a));
Console.WriteLine(getText(b) + getSum(b));
Console.WriteLine(getEndText());
}
static String getText(int n) {
return "Sum bewteen 1-" + n + " is ";
}
static int getSum(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
static String getEndText() {
return "Program ended.";
}
}
จากตัวอย่าง นี่เป็นโปรแกรมในการหาผลลรวมของตัวเลขระหว่าง 1 - n
เมื่อ n คืออากวิเมนต์ที่ส่งเข้ามายังเมธอด และส่งค่ากลับไปหลังจากที่คำนวณเสร็จแล้ว
int x = getSum(10); // 55
boolean y = (getSum(10) == 55);
จากโค้ดคำสั่งด้านบน มันจะมีค่าเท่ากับ 55 และมีประเภทข้อมูลเป็น Integer ซึ่งตรงกับในตอนที่สร้างเมธอด ดังนั้น expression (getSum(10) == 55)
จะมีค่าเป็นจริง
Sum bewteen 1-10 is 55
Sum bewteen 1-25 is 325
Program ended.
และนี่เป็นผลลัพธ์ของโปรแกรมเมื่อเราได้ส่งตัวเลขต่างๆ เข้าไปยังเมธอด และผลลัพธ์ของมัน
ในบทนี้ คุณได้เรียนสิ่งที่จำเป็นที่จะต้องรู้เกี่ยวกับเมธอด และได้เรียนรู้ทั้งเมธอดที่มีการส่งค่ากลับและไม่มีการส่งค่ากลับ