Từ Khóa out
Từ khóa out dùng để truyền tham số cho phương thức như kiểu tham chiếu (reference type) và chủ yếu dùng khi phương thức phải trả về nhiều giá trị. Từ khóa ref cũng dùng để truyền tham số như kiểu tham chiếu và dùng khi biến hiện có cần được sửa đổi trong phương thức. Dưới đây là cách dùng hợp lệ của ref và out trong C#.
Ví Dụ
using System.IO;
using System;
public class Program {
public static void update(out int a){
a = 10;
}
public static void change(ref int d){
d = 11;
}
public static void Main() {
int b;
int c = 9;
Program p1 = new Program();
update(out b);
change(ref c);
Console.WriteLine("Updated value is: {0}", b);
Console.WriteLine("Changed value is: {0}", c);
}
}
Kết Quả
Updated value is: 10 Changed value is: 11
Dưới đây là một số khác biệt quan trọng giữa từ khóa ref và out.
| STT | Khóa | ref keyword | out keyword |
|---|---|---|---|
| 1 | Mục Đích | ref dùng khi phương thức gọi cần cập nhật tham số truyền vào. | out dùng khi phương thức gọi cần cập nhật nhiều tham số truyền vào. |
| 2 | Hướng | ref truyền dữ liệu hai chiều (bi-directional). | out lấy dữ liệu một chiều (uni-directional). |
| 3 | Khởi Tạo | Trước khi truyền biến như ref, bắt buộc phải khởi tạo, nếu không compiler báo lỗi. | Không cần khởi tạo biến nếu dùng out. |
| 4 | Khởi Tạo Trong Phương Thức | Trong phương thức gọi, không bắt buộc khởi tạo tham số truyền như ref. | Trong phương thức gọi, bắt buộc khởi tạo tham số truyền như out. |