string s1 = "hello";
string s2 = s1;
s1 = "goodbye";
Console.WriteLine(s2);//hello
Console.WriteLine(s1);//goodbye`
Nếu như là object thì s2 sẽ bị đổi theo s1 vì cũng trỏ chung 1 ô nhớ heap.
Còn trường hợp này :
string s1 = "hello";
----> ô nhớ stack S1 chứa “hello”.
string s2=s1;
----> ô nhớ stack S2 chứa “hello” (clone từ stack S1 qua).
s1 = "goodbye";
----> ô nhớ stack S1 bị sửa thành “goodbye”.
Kết quả :
s1 —> S1 —> goodbye
s2 —> S2 —> hello.
Vì string cũng là Object mà sao cách dùng nó lại giống primary datatype (int, double, bool,…) vậy? Mọi người xác nhận và giải thích giúp e với. Thanks all