回答
字符串是字符数组的抽象。因此,即使是单字符字符串,它们在技术上也是引用类型(尽管与大多数引用类型不同,它们是不可变的)。另一方面,字符本身实际上是值类型。 (MSDN 1,MSDN 2)
C# Replace Performance显示了这一点的性能暗示,其中使用字符数组比使用字符串数组快4倍。
该框架根本不将字符串视为值类型。仅仅因为它们是不变的,并不能阻止它们被用作参考类型,贯穿始终。 –
调用'StringBuilder.Append()'时,在适用时使用字符也有一个小的性能优势。 –
@JonSkeet答复已更新。 – Arithmomaniac
- 1. COM字符串(BSTR)和.NET字符串有什么区别?
- 2. 在.NET中字符串实习和字符串合并有什么区别?
- 3. C字符串和C++字符串有什么区别?
- 4. 字符串和字符串有什么区别?
- 5. 在C#中。字符串和字符串有什么区别?
- 6. golang中的[]字符串和...字符串有什么区别?
- 7. 有没有什么办法区分字符和数字字符串
- 8. 为什么.NET不能用时区解析日期字符串?
- 9. 字符串和Javascript中的字符数组有什么区别?
- 10. R中的字符串和字符有什么区别?
- 11. 我如何区分数字字符串和字符串?
- 12. 列表和区分INT和字符串值的字符串值
- 13. 区分字符串和字节数组?
- 14. 为什么字符串不分裂?
- 15. JQuery.each将字符串文字转换为字符串。为什么?
- 16. 在C#中的区别是什么:字符串VS字符串
- 17. 如何将字符串拆分为字母字符串和数字字符串?
- 18. 声明字符串和分配字符串之间的区别
- 19. 如何区分pltcl中的空字符串和空字符串?
- 20. 如何区分字符串和整数字符串?
- 21. 如何区分SHA1字符串和日期时间字符串?
- 22. .NET字符串拆分()
- 23. 为什么字符串与管扩大我的分区宽度
- 24. 分配和创建实例的字符串有什么区别?
- 25. 什么是.NET中的字符串?
- 26. 在scala中分割一个字符串与字符和字符串的区别
- 27. 将字符串拆分为字符串
- 28. 将字符串拆分为字符串
- 29. 为什么数字+字符串在JavaScript中的字符串?
- 30. 为什么C#/ .Net字符串长度前缀和空终止?
因为有时一个字符比长度为1的字符串更准确的抽象。 –