18. Truyền tham chiếu và tham trị trong ngôn ngữ lập trình C#

Trong ngôn ngữ lập trình C#, bạn có thể truyền tham trị (by value) hoặc truyền tham chiếu (by reference) khi gọi hàm. Cả hai cách này có cách thức hoạt động và ứng dụng khác nhau.

  1. Truyền tham trị (by value): Trong ngôn ngữ lập trình C#, khi bạn truyền tham trị cho một hàm, một bản sao của giá trị được tạo và chuyển đến hàm. Bất kỳ thay đổi nào đối với tham số trong hàm không ảnh hưởng đến giá trị ban đầu của biến gốc bên ngoài hàm.

Ví dụ:

csharp
using System;

class Program {
    static void ModifyValue(int x) {
        x = 10;
    }

    static void Main() {
        int number = 5;
        Console.WriteLine("Before: " + number);
        ModifyValue(number);
        Console.WriteLine("After: " + number);
    }
}

Kết quả sẽ là:

makefile
Before: 5
After: 5
  1. Truyền tham chiếu (by reference): Khi bạn truyền tham chiếu cho một hàm, biến ban đầu và tham số hàm đều trỏ đến cùng một vị trí trong bộ nhớ. Bất kỳ thay đổi nào được thực hiện trong hàm đối với tham số cũng ảnh hưởng đến giá trị của biến gốc bên ngoài hàm.

Ví dụ:

csharp
using System;

class Program {
    static void ModifyRef(ref int x) {
        x = 10;
    }

    static void Main() {
        int number = 5;
        Console.WriteLine("Before: " + number);
        ModifyRef(ref number);
        Console.WriteLine("After: " + number);
    }
}

Kết quả sẽ là:

makefile
Before: 5
After: 10

Lưu ý rằng để truyền tham chiếu, bạn cần sử dụng từ khóa ref khi định nghĩa tham số của hàm và khi gọi hàm.

Truyền tham chiếu thường được sử dụng khi bạn muốn hàm thay đổi giá trị của biến gốc hoặc khi bạn cần truyền một tham số để hàm có thể làm việc với cùng một đối tượng thay vì tạo một bản sao trong ngôn ngữ lập trình C#.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top