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[2];
array[0] = "boo"; (string "boo" created and held in 0 index)
array[1] = "shoo";
array[0] = "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[0] simply points to the new string instance that holds "moo". Is this correct? If not, could someone please clarify, thanks.
==
operator with strings. There's not much else that is comparable.