Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Các phương thức truyền tham số (Parameter Passing) trong C#

Khi gọi phương thức có tham số, có 3 cách truyền:

1. Value Parameters (Truyền giá trị) - Mặc định

Sao chép giá trị thực vào tham số hình thức. Thay đổi trong method không ảnh hưởng đối số gốc. Tạo vị trí lưu trữ mới.

Ví dụ Value Parameter (Swap thất bại):

using System;

namespace CalculatorApplication
{
    class NumberManipulator
    {
        public void Swap(int x, int y) // Không có ref
        {
            int temp = x; x = y; y = temp;
        }
        
        static void Main(string[] args)
        {
            NumberManipulator n = new NumberManipulator();
            int a = 7, b = 10;
            Console.WriteLine("Before swap, a={0}, b={1}", a, b); // 7, 10
            n.Swap(a, b);
            Console.WriteLine("After swap, a={0}, b={1}", a, b);  // Vẫn 7, 10
            Console.ReadLine();
        }
    }
}

Kết quả

Before swap, a=7, b=10
After swap, a=7, b=10

2. Reference Parameters (Truyền tham chiếu) - ref

Sao chép địa chỉ bộ nhớ. Thay đổi trong method ảnh hưởng đối số gốc. Dùng ref ở cả khai báo và gọi.

3. Output Parameters (Tham số đầu ra) - out

Tương tự ref nhưng: không cần khởi tạo trước khi truyền, bắt buộc gán giá trị trong method trước khi trả về. Dùng để trả về nhiều giá trị.

Ví dụ out:

public void Divide(int a, int b, out int result, out int remainder)
{
    result = a / b;
    remainder = a % b;
}
// Gọi: Divide(10, 3, out int q, out int r); // q=3, r=1

Tóm tắt: Mặc định = value. Dùng ref khi cần sửa đổi đối số. Dùng out khi method trả về nhiều giá trị. C# 7.2+ có in (readonly reference).