.NET中真正的字符串是什么?

Bob*_*Bob 5 .net string

字符串实际上是一个字符数组(is-a),还是它有一个字符数组作为内部存储(has-a),还是它自己的对象可以将自己暴露为带有字符数组的?

我更倾向于说它是它自己的对象,但那么为什么我们倾向于总是说"字符串是一个字符数组......"?

Meh*_*ari 7

这取决于你对"字符串"这个词的定义.

System.String .NET中的type有一个字符数组作为内部存储(它还存储长度(例如O(1)),例如).

但单词string意味着一般情况下连续出现的东西,也可能意味着字符数组:))

顺便说一句,当我说string类型有一个"字符数组"时,我并不是指具体的"字段类型char[]".我的意思是"数组"一词的一般含义是有序的集合.:))


jal*_*alf 7

.NET字符串不仅仅是一个字符数组.它包含一系列字符,严格来说,它有一个字符.

此外,也有不少Unicode相关奥妙在它不表现的东西就像一个数组.连接字符可能不仅仅是将字符串长度增加1,而是在末尾插入新字符.根据Unicode规范化规则,它实际上可能会更改整个字符串.因此,它绝对不一样的字符数组,而是介于在类中,这样的一个数组存在.