为什么string是引用类型?C#里面众所周知,有两大类型,分别引用类型和值类型。引用类型有类(class)和字符串(string),而值类型有int、double、char、bool等等。
分析string为什么是引用类型之前,要分析一下,int整型和bool布尔值为什么是值类型。int和bool这俩类型的值是已经存在写死在某个地方了。例如bool只有true和false两个值,int的值段 -2147483648到2147483647。所以可以说值类型的内容已经写死了。比如你用int类型声明一个字段,赋值的时候你只能赋值 -2147483648到2147483647的数字,不然就会报系统错误。字符(char)也是,字符是把计算机的各种单字符写好了存放在一个地方,举例26个字母,0-9都是字符。然而字符串是由字符串组合一起形成的。因为字符串是字符组合而成的,内容是值类型组合成,说明这个内容无法写死,可以用各种不同的字符组合成不同的新的字符串。所以字符串不可能是值类型,值类型的内容根本无法满足字符串的多变。(因为之前稍微看了一本《30天自制系统》里面第一步就是把二进制的内容复制到一个文件里,我猜里面放的就是所需要的固定值。这些是反推,代码有点让我回想到unsafe的位置,自己理论知识太low,搁置这。对计算机了解不够深。这里只是方便一些新手知道)
string str="abc";char a=‘a‘;char b=‘b‘;char c=‘c‘;