TOC

This article is currently in the process of being translated into Thai (~99% done).

The Basics:

Functions

Functions คือ ตัวช่วยในการเขียนโค้ดที่สามารถ encapsulate (คุณสมบัติในการเขียนโปรแกรมเชิงวัตถุแล้วมีการกำหนดการเข้าสมาชิกภายใน class ไม่ว่าภายนอกหรือภายในก็ตาม จะถูกนำไปใช้เพื่อป้องกันข้อมูลภายในให้มีความปลอดภัย และง่ายต่อการเข้าใจ) ได้ เพราะบางครั้ง เราจะต้องใช้โค้ดซ้ำๆกันแต่กระจายกันไปหลายๆที่ ใน C# เราจะเขียนแบบนี้

<visibility> <return type> <name>(<parameters>)
{
<function code>
}

เราจะเรียกใช้ function ได้ด้วย ชื่อ, วงเล็บเปิด, ตัวแปร แล้วก็วงเล็บปิด ดังนี้

DoStuff();

นี่คือตัวอย่างของ DoStuff() function

public void DoStuff()
{
    Console.WriteLine("I'm doing something...");
}

ส่วนแรก เราใช้ public เป็น visibility ซึ่งถ้าเราไม่ใส่ function นี้จะเป็น private ต่อมาคือ ชนิดของการ return ค่า เราใช้ void ซึ่ง แปลว่า เราไม่ต้องคืนค่าใดๆ ในส่วนของตัวแปร ในวงเล็บของตัวอย่างนี้ เราไม่ต้องใส่ค่าอะไร ตัวอย่างต่อไป เราจะมาลองเปลี่ยนค่าดู

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    return result;
}

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

int result = AddNumbers(10, 5);
Console.WriteLine(result);

ดังที่ได้กล่าวไว้ว่า function นี้ต้องคืนค่า เพราะเราไม่ได้ตั้งค่าให้เป็น void เรามาลองลบโค้ดที่ return ดู

'AddNumbers(int, int)': not all code paths return a value (มีโค้ดบางตัวไม่คืนค่า)

compiler จะเตือนเรา บอกว่า function ไม่สามรถทำการคืนค่าได้

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
}

ตัวอย่างนี้ จะเตือนเราว่า error เหมือนกัน แต่ว่าเตือนทำไม? มันเตือนเพราะว่าเรา ใส่ค่า return ไม่ครบตามเงื่อนไข (statement) ที่ถูกต้องคือตามตัวอย่างด้านล่าง

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
    return 0;
}

ตัวอย่างนี้ได้มีค่า return มากกว่า 1 ค่าตามเงื่อนไข เมื่อเงื่อนไขนั้นเป็นจริง มันจะ return ค่าทันที เช่น ถ้าผลลัพธ์มากกว่า 10 มันจะคืนค่าทันที บันทัดที่เป็น return 0 compiler ก็จะไม่ประมวลผลต่อ

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!