So sánh từ khóa ref và out trong C#.
Từ khóa ref
- Tham số truyền cho
refphải khởi tạo trước khi gọi method. - Không bắt buộc khởi tạo giá trị trước khi trả về cho caller.
- Dữ liệu truyền 2 chiều (caller ↔ callee).
- Hữu ích khi method được gọi cần thay đổi giá trị tham số truyền vào.
Từ khóa out
- Không yêu cầu khởi tạo tham số trước khi truyền cho
out. - Bắt buộc khởi tạo (gán giá trị) trước khi trả về cho caller.
- Khai báo
outhữu ích khi method cần trả về nhiều giá trị. - Dữ liệu truyền 1 chiều (chỉ từ callee ra caller).
Cả ref và out đều truyền by reference. in (C# 7.2+) cũng truyền by reference nhưng readonly.