回答
字符串是字符數組的抽象。因此,即使是單字符字符串,它們在技術上也是引用類型(儘管與大多數引用類型不同,它們是不可變的)。另一方面,字符本身實際上是值類型。 (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的字符串更準確的抽象。 –