C# C-Sharp คือ ตอนที่ 5 : ฟังก์ชัน (Functions) และวิธีการ (Methods)

  1. ความรู้เบื้องต้นเกี่ยวกับฟังก์ชัน (Functions) และวิธีการ (Methods)
  2. การประกาศ (Declaration) และนิยาม (Definition) ของวิธีการ (Methods)
  3. ฟังก์ชั่นโอเวอร์โหลด (Function Overloading)
  4. ฟังก์ชันเรียกซ้ำ (Recursive Functions)
  5. ฟังก์ชันนิรนาม (Lambda Expressions)
  6. ฟังก์ชั่นและการทำแอพ

การทำแอพ โดยเฉพาะอย่างยิ่งกับภาษาที่ทรงพลังอย่าง C# นั้นต้องการความเข้าใจในฟังก์ชันและวิธีการอย่างลึกซึ้ง พวกเขาสร้างแกนหลักของแอพใด ๆ ขับเคลื่อนตรรกะและการกระทำของมัน วันนี้เราจะเจาะลึกโลกของฟังก์ชันและเมธอดใน C# โดยเน้นความสำคัญในการทำแอพ

1. ความรู้เบื้องต้นเกี่ยวกับฟังก์ชัน (Functions) และวิธีการ (Methods)

ใน C# เมธอดจะตั้งชื่อบล็อกโค้ดเป็นหลักซึ่งทำงานเฉพาะเมื่อเรียก คำว่า ‘function’ และ ‘method’ มักใช้แทนกันได้ในภาษา C# แต่ในทางเทคนิคแล้ว ฟังก์ชันคือเมธอดที่ส่งกลับค่า ในทางกลับกัน เมธอดไม่จำเป็นต้องส่งคืนค่า ฟังก์ชันและวิธีการเป็นเครื่องมือที่สำคัญสำหรับการจัดระเบียบโค้ด การส่งเสริมการใช้ซ้ำ และเพิ่มความสามารถในการอ่านโค้ด

2. การประกาศ (Declaration) และนิยาม (Definition) ของวิธีการ (Methods)

ใน C# เมธอดจะถูกประกาศและกำหนดภายในคลาสหรือโครงสร้าง ไวยากรณ์สำหรับการประกาศเมธอดประกอบด้วยตัวแก้ไขการเข้าถึง (สาธารณะ ส่วนตัว ฯลฯ) ประเภทการส่งคืน (เป็นโมฆะหากไม่มีการส่งคืนค่า) ชื่อเมธอด และรายการพารามิเตอร์ที่อยู่ในวงเล็บ นี่คือตัวอย่าง:

public void DisplayMessage(string message)
{
    Console.WriteLine(message);
}

ในตัวอย่างนี้ DisplayMessage เป็นเมธอดที่ไม่ส่งคืนค่าใดๆ ( void ประเภทส่งคืน) และรับพารามิเตอร์สตริงชื่อ message เนื้อความของเมธอดซึ่งอยู่ในวงเล็บปีกกาประกอบด้วยโค้ดที่เรียกใช้งานเมื่อเมธอดถูกเรียกใช้

3. ฟังก์ชั่นโอเวอร์โหลด (Function Overloading)

การโอเวอร์โหลดฟังก์ชัน หรือที่เรียกว่าเมธอดโอเวอร์โหลด เป็นฟีเจอร์หนึ่งใน C# ที่ให้คุณกำหนดเมธอดหลายเมธด้วยชื่อเดียวกันแต่ใช้พารามิเตอร์ต่างกัน (ไม่ว่าจะเป็นชนิดหรือจำนวนพารามิเตอร์ต่างกัน) นี่เป็นเทคนิคสำคัญในการทำแอพ ช่วยให้นักพัฒนาสามารถเขียนโค้ดที่สะอาดและเป็นธรรมชาติมากขึ้น วิธีการโอเวอร์โหลดอาจมีลักษณะดังนี้:

public void DisplayMessage()
{
    Console.WriteLine("Hello, world!");
}

public void DisplayMessage(string message)
{
    Console.WriteLine(message);
}

ในกรณีนี้ DisplayMessage สามารถเรียกใช้โดยมีหรือไม่มีพารามิเตอร์สตริงก็ได้ และเมธอดที่ถูกต้องจะถูกดำเนินการตามอาร์กิวเมนต์ที่ให้มา

4. ฟังก์ชันเรียกซ้ำ (Recursive Functions)

ฟังก์ชันเรียกซ้ำคือฟังก์ชันที่เรียกใช้ตัวเองเพื่อแก้ปัญหาในส่วนที่เล็กลงและสามารถจัดการได้มากขึ้น แนวคิดนี้มีความสำคัญอย่างยิ่งในสถานการณ์การแก้ปัญหาบางอย่างในการทำแอพ เช่น การสำรวจโครงสร้างข้อมูล (เช่น ต้นไม้หรือกราฟ) หรือการใช้อัลกอริทึมอย่าง QuickSort หรือ Fibonacci

ต่อไปนี้คือตัวอย่างง่ายๆ ของฟังก์ชันวนซ้ำที่คำนวณแฟกทอเรียลของตัวเลข:

public int Factorial(int n)
{
    if (n == 0)
    {
        return 1;
    }
    else
    {
        return n * Factorial(n - 1);
    }
}

5. ฟังก์ชันนิรนาม (Lambda Expressions)

ฟังก์ชันนิรนามหรือนิพจน์แลมบ์ดาเป็นวิธีการกำหนดเมธอดแบบอินไลน์โดยไม่มีชื่อ มักใช้กับ LINQ (Language Integrated Query) หรือกับผู้รับมอบสิทธิ์และกิจกรรมต่างๆ สามารถเพิ่มการอ่านโค้ดและความกระชับได้อย่างมาก นี่คือตัวอย่างของการแสดงออกแลมบ์ดา:

Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(5, 3)); // Outputs: 8

ในตัวอย่างนี้addเป็นผู้รับมอบสิทธิ์ที่เป็นตัวแทนของฟังก์ชันนิรนามที่รับพารามิเตอร์จำนวนเต็มสองพารามิเตอร์และส่งกลับผลรวม

6. ฟังก์ชั่นและการทำแอพ

การทำความเข้าใจเกี่ยวกับฟังก์ชันและวิธีการเป็นสิ่งสำคัญสำหรับการทำแอพใน C# ให้ประสบความสำเร็จ นี่คือเหตุผล:

1. การจัดระเบียบโค้ดและความสามารถในการใช้ซ้ำ : ฟังก์ชันจัดเตรียมวิธีการจัดแพคเกจโค้ดที่เกี่ยวข้องลงในบล็อกที่ใช้ซ้ำได้ ซึ่งช่วยลดความซ้ำซ้อนของโค้ดและทำให้อ่าน ทำความเข้าใจ และบำรุงรักษาโค้ดได้ง่ายขึ้น

2. ความเป็นโมดูลาร์ : ฟังก์ชันส่งเสริมความเป็นโมดูล ทำให้นักพัฒนาสามารถสร้างแอพที่ซับซ้อนจากชิ้นส่วนที่เรียบง่ายและเล็กลง แต่ละฟังก์ชันทำหน้าที่เป็นโมดูลที่สามารถทดสอบและดีบักได้โดยอิสระ ทำให้การทำแอพง่ายขึ้นและมีประสิทธิภาพมากขึ้น

3. การเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ : เฟรมเวิร์กการทำแอพจำนวนมาก รวมถึง Xamarin และ .NET MAUI สำหรับการทำแอพมือถือ และ ASP.NET สำหรับการทำเว็บ ใช้โมเดลการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ ในโมเดลนี้ เมธอด (มักเรียกว่าตัวจัดการเหตุการณ์) ตอบสนองต่อการโต้ตอบของผู้ใช้ เช่น การคลิกปุ่มหรือการเคลื่อนไหวของเมาส์

4. การใช้อินเทอร์เฟซและคลาสนามธรรม : ในการทำแอพ อินเทอร์เฟซและคลาสนามธรรม (ซึ่งมีการประกาศเมธอดโดยไม่มีคำจำกัดความ) มักจะใช้เพื่อกำหนดพฤติกรรมที่คลาสต้องนำไปใช้ คลาสการใช้งานให้คำจำกัดความสำหรับวิธีการเหล่านี้

5. Async Programming : การทำแอพสมัยใหม่มักจะเกี่ยวข้องกับการเขียนโปรแกรมแบบอะซิงโครนัสเพื่อป้องกันไม่ให้ UI ค้างระหว่างการทำงานที่ใช้เวลานาน ใน C# คำหลัก async และ awaitใช้กับวิธีการเพื่อให้ได้สิ่งนี้


ความเข้าใจที่ครอบคลุมเกี่ยวกับฟังก์ชันและวิธีการใน C# เป็นสิ่งที่ขาดไม่ได้สำหรับการทำแอพ ตั้งแต่การจัดระเบียบและการใช้โค้ดซ้ำ การส่งเสริมความเป็นโมดูลาร์ การใช้อินเทอร์เฟซและคลาสนามธรรม ไปจนถึงการเขียนโปรแกรมแบบอะซิงโครนัส เมธอดแทรกซึมเข้าไปในทุกแง่มุมของการทำแอพ ในขณะที่คุณเดินทางต่อไปในการทำแอพ C# คุณจะพบว่าโครงสร้างเหล่านี้ไม่ได้เป็นเพียงเครื่องมือ แต่เป็นส่วนประกอบสำคัญสำหรับแอปพลิเคชันของคุณ


C# C-Sharp คืออะไร

C# C-Sharp คือ ตอนที่ 4 : การจัดการข้อยกเว้น (Exception Handling)
C# C-Sharp คือ ตอนที่ 6 : การเขียนโปรแกรมเชิงวัตถุ (OOP)