-3
文字列がSystem.String
の別名ですが、この特定の動作を理解できません。stringに値を代入すると、新しいインスタンスが作成されますか? C#
string s = "ABC";
string s1 = "AB"+"C";
String s2 = new String("ABC");
s == s1
戻りtrue
しかしs == s2
戻りfalse
。
私が知っているのはs
とs1
というインスタンスは参照型ですが、s==s1
は本当ですか?
[string.Equals()と==演算子は本当に同じですか?](http://stackoverflow.com/questions/3678792/are-string-equals-and-operator-really-same) –
http – Khoshtarkib
"AB" + "C"は、コンパイラによって "ABC"に変換されます。また、文字列がインターンされるので、sとs1は同じ文字列への参照です。文字列型は特殊で、他の参照型とは扱いが異なります。 –