Trying to understand strings better in C#
Are these assertions correct?
- string is immutable
- string is reference type but behaves like value type
For these code samples...
string x = "one"
(creates string instance holding "one" in memory)
x = "two"
(destroys "one" instance and creates new string instance holding "two" in memory, even though it is using the same variable x)
If the above are correct, what happens in a string array when one index value changes?
string array = new string; array = "boo"; (string "boo" created and held in 0 index) array = "shoo"; array = "moo";
Does the last assignment create an entire new array to change boo to moo? My best "guess" is that the array holds pointers so that array simply points to the new string instance that holds "moo". Is this correct? If not, could someone please clarify, thanks.