Tôi hiểu rằng nếu tôi chuyển một loại giá trị ( int
, struct
v.v.) làm tham số (không có ref
từ khóa), một bản sao của biến đó sẽ được truyền cho phương thức, nhưng nếu tôi sử dụng ref
từ khóa thì tham chiếu đến biến đó sẽ được thông qua, không phải là một cái mới
Nhưng với các kiểu tham chiếu, như các lớp, thậm chí không có ref
từ khóa, một tham chiếu được truyền cho phương thức, không phải là một bản sao. Vì vậy, việc sử dụng ref
từ khóa với các loại tham chiếu là gì?
Lấy ví dụ:
var x = new Foo();
Sự khác biệt giữa những điều sau đây là gì?
void Bar(Foo y) {
y.Name = "2";
}
và
void Bar(ref Foo y) {
y.Name = "2";
}