Tham chiếu – tham trị và tham biến là những khái niệm cơ bản trong lập trình mà bất cứ lập trình viên nào cũng cần hiểu và xác định rõ. Trong phạm vi bài viết này mình và các bạn sẽ cùng nhau tìm hiểu cách truyền tham chiếu và tham trị trong C#.
Khái niệm cơ bản
Dưới góc nhìn khách quan của mình thì bạn hãy hiểu đơn giản tham chiếu và tham trị dưới góc nhìn cách sử dụng
- Tham chiếu: Có thay đổi giá trị sau khi kết thúc hàm
- Tham trị: Không thay đổi giá trị sau khi kết thúc hàm
a. Phân biệt nhầm lẫn tham chiếu, tham trị
- Trước khi tìm hiểu về 2 cách truyền này ta phải phân biêt rõ thế nào là truyền tham số trước để tránh bị nhầm lẫn. Mình lấy ví dụ chẳng hạn ta khai báo 1 biến int check ở ngoài… sau mỗi phương thức mình kiểm tra thì giá trị check đều bị thay đổi…. nhưng ở mỗi phương thức mình lại ko truyền giá trị vào ==> Giá trị biến cũng thay đổi đấy Nhưng nó không phải là tham chiếu nhé, bời vì nó được thay đổi trực tiếp bằng cách gọi biến vào chứ ko phải truyền tham số. Hãy nhìn ví dụ để biết được rõ hơn.
Bạn để ý khi mình gọi hàm ThayDoi1 hoặc 2,3 trong hàm main bạn sẽ thấy rõ kết quả check sẽ bị thay đổi qua tuy nhiên đó chỉ là cách thay đổi giá trị bằng cách gọi biến trực tiếp mà không phải là truyền qua tham số
b. Ref và Out
- Trong C# cách truyền tham trị cơ bản mà ta hay dùng nhất là khai báo 1 biến ở trong phương thức main và truyền biến đó vào 1 phương thức được định nghĩa với cũng kiểu dữ liệu là tham số truyền vào.
- Với truyền tham chiếu – Ta sẽ sử dụng từ khóa ref hoặc out trong C#. Khi gọi phương thức truyền đối số bắt buộc cũng phải truyền vào 2 từ khóa ref và out này.
- ref: dữ liệu trước khi truyền vào phải khai báo giá trị tường minh
- out: dữ liệu truyền vào không cần phải khai báo trước- Phải chỉ định biến trước khi thay đổi
Mình sẽ lấy ví dụ với 3 phương thức như bên dưới, cùng với hàm main bạn hay đoán xem điều gì xảy ra với các kết quả mình liệt kê nhé!
Và khi chạy kết quả sau khi trả ra màn hình
=> Với kết quả Test Tham chiếu giá trị đã bị thay đổi ko giống với giá trị ban đầu..
Chú ý: Mình có 1 lưu ý mà mình đã nhắc trong phần trên với truyền tham chiếu của out là khai báo tham số out các giá trị bạn khai báo bắt buộc phải là tường minh
Hi vọng qua bài viết bạn có thể hiểu phần nào về cách sử dụng tham chiếu và tham trị trong C#. Ở bài tiếp trong cùng chuyên mục mình giúp các bạn phân biệt rõ hơn tham chiếu, tham trị và tham biến về cách tổ chức lưu trữ và sử dụng của nó trong C++ 1 ngôn ngữ rất gần với C# . Đặc biệt với tham chiếu và tham biến