为什么string是引用类型 值还不可以修改

Posted wangliuwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么string是引用类型 值还不可以修改相关的知识,希望对你有一定的参考价值。

 

 

C#把数据类型分为值类型和引用类型。值类型操作简单,引用类型更省空间。

C#一共有15个预定义类型,其中13个值类型(8个整型、2个浮点类型、decimal、bool、char),2个引用类型(string、object)。

仔细看,值类型都是空间使用较小的类型,引用类型都是空间使用较大的类型(如string、我们自己声明的类)。

 

string 因为空间使用大概率较大,所以被作为引用类型。但是如果和一般的引用类型的赋值操作一样,那么容易被在不需要改动的情况下修改。

所以,微软给了折中的办法,每次值的变更,都会给出一个新的地址给变量。原来的地址还是原来的值,自己的修改不影响别人。

这样,string既有引用类型的性能,又有值类型的便捷。

 

以上是关于为什么string是引用类型 值还不可以修改的主要内容,如果未能解决你的问题,请参考以下文章

Java String引用传递问题

String为什么不·是基本数据类型

java里String类型可以直接赋值,保存的是值还是引用的地址?

方法参数的值传递

JavaScript中为什么string可以拥有方法?

javascript 值类型和引用类型