TOC

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

The Basics:

Functions

Một hàm (function) giúp bạn gói trọn phần code và có thể sử dụng nó từ những phần code khác. Bạn có thể bắt gặp tình huống mà khi đó bạn cần lặp lại một đoạn code, từ nhiều chỗ khác nhau, đây là lúc cần đến hàm. Trong C#, hàm được khai như sau :

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

Để khai một hàm, bạn chỉ cần viết ra tên của hàm, mở ngoặc đơn, thông số (nếu có) và đóng ngoặc như sau:

DoStuff();

Dưới đây là một ví dụ của hàm DoStuff mà chúng tôi đã viết :

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

Đầu tiên, hãy nói về chế độ public (công khai), hàm có thể được nhìn thấy khi chạy chương trình. Nếu không được khai public, hàm sẽ được mặc định private (riêng tư), chúng ta sẽ tìm hiểu kĩ hơn sau này. Tiếp theo là loại return (trả về). Nó có thể được khai bất kì chế độ nào trong C#, miễn là hợp lệ, ví dụ như trong trường hợp này là void (trống). Void trong C# có nghĩa là không trả về gì hết. Thêm vào đó, hàm này không nhận bất cứ thông số nào, như bạn có thể thấy bên trong cặp dấu ngoặc đơn, chẳng có gì cả . Hãy thử thay đổi một chút nhé :

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

Chúng ta đã thay đổi gần như mọi thứ. Bây giờ hàm này sẽ trả về một số nguyên kết quả (integer) bằng cách nhận hai thông số (đều là số nguyên) và tính toán, thay cho việc xuất ra thứ gì đó như bình thường. Điều này có nghĩa là chúng ta có thể cộng hai số từ những chỗ khác nhau trong chương trình bằng cách khai hàm, thay cho việc phải tạo ra code tính toán cho mỗi lần sử dụng. Trong ví dụ này, mức độ tiết kiệm thời gian và công sức của việc sử dụng hàm có thể không đáng kể, tuy nhiên sau này, khi sử dụng C# nhiều hơn, bạn sẽ thấy nó hiệu quả ra sao. Hàm này được khai như sau :

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

Như đã nói ở trên, hàm này phải trả về kết quả, bởi vì chúng ta đã ra lệnh cho C# phải làm như vậy. Khi khai những loại return không phải void, chúng ta bắt chương trình phải trả về kết quả nào đó. Bạn có thể thử xóa dòng lệnh return bên trên, và có thể thấy công cụ chỉnh sửa code báo lỗi :

'AddNumbers(int, int)': not all code paths return a value

Công cụ viết code đang nhắc chúng ta rằng hàm này không có trả kết quả, mặc dù chúng ta đã khai là có. Thay vì xóa dòng code đó, hãy thử cách sau:

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

Bạn sẽ gặp lỗi tương tự, vì sao ư ? Vì không có gì để đảm bảo rằng câu điều kiện if có giá trị true (đúng) và dòng return được thực hiện. Bạn có thể giải quyết lỗi này bằng cách thêm một dòng return nữa ở dưới :

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

Vấn đề đã được giải quyết, chúng ta có thể có hơn 1 câu lệnh return trong hàm đã viết. Miễn là kết quả lớn hơn 10, phần return 0 sẽ không trả kết quả về 0.

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!

This article has been deprecated!

This article has been re-organized and updated to better match the rest of the tutorial.

We suggest that you read this article instead: Methods (functions)