Tôi hiểu rằng nếu tôi chuyển một loại giá trị (int
, struct
, v.v.) làm thông số (không có từ khóa ref
), một bản sao của biến đó được chuyển cho phương pháp, nhưng nếu tôi sử dụng từ khóa ref
để biến đó được chuyển, không phải là biến mới.Việc sử dụng "ref" cho biến kiểu tham chiếu trong C# là gì?
Nhưng với kiểu tham chiếu, như lớp học, ngay cả khi không có từ khóa ref
, tham chiếu được chuyển đến phương thức chứ không phải bản sao. Vì vậy, việc sử dụng từ khóa ref
với các loại tham chiếu là gì?
Đưa ví dụ:
var x = new Foo();
sự khác biệt giữa những điều sau là gì?
void Bar(Foo y) {
y.Name = "2";
}
và
void Bar(ref Foo y) {
y.Name = "2";
}
nên về cơ bản bạn có được tham chiếu đến tham chiếu gốc – lhahne
Bạn có thể thay đổi tham chiếu gốc 'đề cập' thành, vì vậy có. – user7116
Chris, lời giải thích của bạn rất tuyệt; Cảm ơn vì đã giúp tôi hiểu khái niệm này. –