在JavaScript中,单引号和双引号在某种程度上是可以互换的,并且在很大程度上是一种风格问题(这里有一个很好的讨论为什么实际情况不是这样的答案之一:何时在JavaScript中使用双引号或单引号?).如何在C#中处理字符和字符串?
例如:
string test = "hello world"; string test2 = 'hello world'; // Too many characters in character literal char test3 = 'a'; char test4 = "a"; // Cannot implicitly convert type string to char
它看起来像字符串和字符作为单独的,可互换的类型处理,并且单引号或双引号的使用划分了这个?
类型语言中字符和字符串之间的关系是什么?具体来说,说一个字符串是一个字符数组是否正确?
说一个字符串是一个字符数组是否正确
在.NET中,字符串是一个对象,包含一个包含UTF-16代码单元的连续内存块.A char
是另一个(原始)数据类型,它只包含一个代码点,没有对象开销.
从Jon Skeet的这篇有趣的博客文章中,他比较了.NET与Java的实现:
长字符串由内存中的单个大对象组成.将其与Java进行比较,其中String在内存消耗方面是"普通"类型,包含char数组的偏移量和长度 - 因此长字符串由引用大型char数组的小对象组成.