Truyền tham số bởi giá trị trong C#



Đây là kỹ thuật mặc định để truyền các tham số tới một phương thức. Trong kỹ thuật này, khi một phương thức được gọi, một vị trí kho lưu mới được tạo cho mỗi tham số giá trị đó.

Các giá trị của các tham số thực sự được sao chép vào trong chúng. Vì thế, các thay đổi được tạo ra với các tham số bên trong phương thức không có ảnh hưởng gì tới các tham số chính thức. Ví dụ sau minh họa khái niệm này.

using System;namespace VietJackCsharp
{
    class TestCsharp
    {
        public void swap(int x, int y)
        {
            int temp; //bien tam            temp = x; /* luu giu gia tri x vao bien tam*/
            x = y;    /* dat gia tri cua y vao x */
            y = temp; /* dat gia tri cua temp vao y */
        }        static void Main(string[] args)
        {
            Console.WriteLine("Truyen tham so boi gia tri trong C#");
            Console.WriteLine("Trao doi gia tri trong C#");
            Console.WriteLine("------------------------------------");
            //tao doi tuong TestCsharp
            TestCsharp n = new TestCsharp();
            /* phan dinh nghia bien cuc bo  */
            int a = 100;
            int b = 200;            Console.WriteLine("Truoc khi trao doi, gia tri cua a la: {0}", a);
            Console.WriteLine("Truoc khi trao doi, gia tri cua b la: {0}", b);            /* goi ham de trao doi gia tri */
            n.swap(a, b);            Console.WriteLine("\nSau khi trao doi, gia tri cua a la: {0}", a);
            Console.WriteLine("Sau khi trao doi, gia tri cua b la: {0}", b);            Console.ReadLine();
            Console.ReadKey();
        }
    }
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

Truyền tham số bởi giá trị trong C#

Điều này chỉ ra rằng không có sự thay đổi trong các giá trị bởi vì chúng đã được thay đổi bên trong hàm.


phuong_thuc_trong_csharp.jsp