เมธอด

ในบทนี้ เราจะพูดเกี่ยวกับเมธอดในภาษา 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.

และนี่เป็นผลลัพธ์ของโปรแกรมเมื่อเราได้ส่งตัวเลขต่างๆ เข้าไปยังเมธอด และผลลัพธ์ของมัน

ในบทนี้ คุณได้เรียนสิ่งที่จำเป็นที่จะต้องรู้เกี่ยวกับเมธอด และได้เรียนรู้ทั้งเมธอดที่มีการส่งค่ากลับและไม่มีการส่งค่ากลับ


บทความเกี่ยวกับ เมธอด

String ในภาษา Java

ในบทนี้ คุณจะได้เรียนเกี่ยวกับประเภทข้อมูล String และคลาสของ String โดยละเอียด และนอกจากนี้ยังเรียนรู้ถึงวิธีการใช้เมธอดเพื่อจัดการ String ในภาษา Java String เป...

String methods ในภาษา Python

ในบทก่อนหน้า เราได้พูดเกี่ยวกับการใช้งาน String ในเบื้องต้นไปแล้ว ในบทนี้ เราจะแนะนำเมธอดและการใช้งานเมธอดในคลาส String ในภาษา Python นั้น String เป็นคลาสมาตรฐา...

เมธอด ในภาษา Java

เมธอด เป็นกลุ่มของคำสั่งที่สร้างขึ้นมาเพื่อทำหน้าที่บางอย่าง การสร้างเมธอดจะสามารถทำให้เราใช้โค้ดนั้นซ้ำๆ โดยที่ไม่ต้องเขียนโปรแกรมใหม่เมื่อสร้างเมธอดในภาษา Jav...

List methods ในภาษา Python

ในบทนี้ เราจะพูดถึงการใช้งาน List เมธอด ในภาษา Python เนื่องจาก List เป็นออบเจ็ค ดังนั้น Python จึงได้ให้เมธอดต่างๆ สำหรับทำงานพื้นฐานกับ List ที่ช่วยอำนวยความส...