13
I had a thought before when comparing two strings with their variables:
string str1 = "foofoo";
string strFoo = "foo";
string str2 = strFoo + strFoo;
// Even thought str1 and str2 reference 2 different
//objects the following assertion is true.
Debug.Assert(str1 == str2);
Is this purely because the .NET runtime recognises the string's value is the same and because strings are immutable makes the reference of str2 equal to that of str1?
So when we do str1 == str2 we are actually comparing references and not the values? I originally thought this was the product of syntactic sugar, but was I being incorrect?
Any inaccuracies with what I've written?