now*_*ed. 1 .net c# string immutability visual-studio-2010
它更为人所知strings are immutable=>意思,那the contents of the object cannot be changed after it is created.
所以,面试问题是:
在此声明中创建了多少个对象?
string q = "A" + "B" + "C";
我回答two是因为"A"+"B"创建了一个对象并且与"C"连接创建了另一个对象.
但是,她说its wrong.有什么想法吗?
如果在这种情况下发生多个字符串的连接会发生什么?
Mat*_*son 15
string q = "A" + "B" + "C"; 将由编译器转换为:
string q = "ABC";
因为所有的字符串都是常量.所以正确答案是只创建了一个对象.
从技术上讲,它被编译为以下IL:
ldstr "ABC"
Run Code Online (Sandbox Code Playgroud)
请注意,如果字符串不是常量(即您在那里使用了变量),它将被转换为单个调用 String.Concat(string, string, string)
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |