【发布时间】:2015-09-15 20:44:38
【问题描述】:
字符串文字在 C# 中是否具有特定类型(如 C++ 中的 const char*),还是 C# 只是为程序中出现的每个字符串文字创建一个新的字符串对象? 我很想知道执行以下语句时幕后发生了什么:
string s1 = "OldValue";
这会调用字符串类中的特定方法(构造函数,或隐式转换运算符,...)还是 C# 创建一个包含“OldValue”的新字符串对象(然后只需将其引用分配给 s1,就就像任何参考类型一样)?
我试图了解在保证 s1 的值仍然是“OldValue”的字符串类的设计中是什么:
string s2 = s1;
s2 = "NewValue";
【问题讨论】:
-
你知道reference types是什么吗?
-
@Sinatr :是的,我知道什么是参考类型。只是想了解:当我写 s2 = "NewValue" 时,是否意味着创建了一个值为 "NewValue" 的字符串对象,然后将对其的引用分配给 s2 ?从下面 quetzalcoatl 的回答来看,似乎是这样
标签: c# string assignment-operator string-literals