Không thể không có mã an toàn (ngoài các thông số chức năng của ref
). Trong mã không an toàn, bạn có thể sử dụng con trỏ để đạt được điều đó, nhưng tôi không nghĩ đó là một ý tưởng hay.
A
chứa tham chiếu đến "Tom" làm giá trị. Bạn cần tham chiếu đến A
để thay đổi vị trí của nó.
Nếu chúng ta xem xét mã tương tự như trong một ngôn ngữ trong đó sử dụng một cách rõ ràng con trỏ thay vì mặc nhiên điều trị các trường hợp của các lớp học như tài liệu tham khảo:
Person* A=new Person("Tom");
Person* B=A;
B=new Person("Harry");//Changes only B
Person** C=&A;
(*C)=new Person("John");//Now A changes
Vì vậy, bạn cần một con trỏ đến một con trỏ để thay đổi A
. Nếu bạn chuyển nó sang C#, bạn cần tham chiếu đến biến cục bộ. Và chúng chỉ có sẵn ở dạng thông số chức năng ref
. Điều này tránh một số vấn đề về tuổi thọ do tham chiếu đến biến cục bộ không thể tồn tại một cách an toàn so với biến cục bộ đó.
Nếu đây không phải là biến riêng tư, bạn có thể biến B thành thuộc tính để sửa đổi A trong trình thiết lập.
Person B{get{return A;} set{A=value;}}
Tôi lấy quyền tự do xóa thẻ VB. Bạn không chắc chắn cách áp dụng ở đây ngoại trừ trong tiêu đề ban đầu của bạn. –