Đối tượng chuỗi hoạt động như kiểu Giá trị khi sử dụng toán tử == và! = Có nghĩa là đối tượng thực tế thay vì tham chiếu được chọn.Làm thế nào một kiểu String được chuyển đến một phương thức hoặc gán cho một biến trong C#?
Điều gì về việc truyền tham số, bài tập và sao chép?
Chuỗi tham số Truyền: Khi loại tham chiếu được chuyển đến phương thức, tham chiếu của nó được sao chép nhưng đối tượng nằm bên dưới vẫn giữ nguyên.
Điều này cũng đúng với loại Chuỗi trong C#? Ý tôi là sẽ có 2 con trỏ (messageVar và messageParam) trỏ đến cùng một đối tượng trong mã bên dưới:
public static void main()
{
string messageVar = "C#";
Test(messageVar);
// what about in assignement?
string messageVar2 = messageVar;
}
public void Test(string messageParam)
{
// logic
}
Điều gì sẽ xảy ra khi nó được gán cho một biến? Tôi đoán, các tài liệu tham khảo sẽ được sao chép chỉ và các đối tượng thực tế ở lại cùng một bộ nhớ đệm trong chuỗi Intern Pool. Không chắc.
Thông báo có phảiVar2 cũng đề cập đến cùng một đối tượng không?
Xin cảm ơn,
đẹp; Sự khác nhau giữa Object.Equals và Object.ReferenceEquals khi làm việc với chuỗi là gì? –
Đối với chuỗi 'Equals()' sẽ kiểm tra đối với * chuỗi bình đẳng * bất kể tham chiếu, ví dụ: "foo" bằng "foo" bất kể cả hai chuỗi có trỏ đến các đối tượng khác nhau hay không – BrokenGlass