C#中 String 到底是引用类型还是值类型? 很疑惑为什么书上说的都自相矛盾啊!

例子stringstr="abc";书上说1所有引用类型变量都必须用New关键字;2String类型是引用类型那么为什么这里的例子中的表达式没有写成stringstr=N... 例子 string str="abc";

书上说
1 所有引用类型变量都必须用New关键字;
2 String类型是引用类型
那么为什么这里的例子中的表达式没有写成 string str=New string("abc");

非常疑惑。请各位帮忙解释清楚。谢谢
有网上说string可以看作是值类型中的int一样来声明变量,
那么是否可以理解String类型既是值类型,又是引用类型?
展开
 我来答
syht2000
高粉答主

2014-10-05 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
这个讨论已经很多了,你随便搜索以下C# string 引用类型 值类型就能找到,公认的说法就是string是只读的引用类型,外部表现接近值类型,它与一般的引用类型是不同的,普通的写法不用写new的原因是因为c#默认已经做了new处理,这里是java的,与C#基本一样http://www.blogjava.net/min-water/archive/2010/10/16/335326.html
http://blog.csdn.net/lijinlin/article/details/6093629
http://xiachanghao1990.blog.163.com/blog/static/4869602420114632835414/
百度网友9308069
2014-10-05 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1919万
展开全部
对于新建.net框架的String类时,.net的各个语言是必须用类似
String s=new String(....); //String类属于.net框架

但C#语言环境下定义了小写的string(作为String类的别名),作为语言组成部分的关键字;也定义了"abc"作为字符串的表现法。都不同于新建对象的语法。

String类属于引用类型,因为
String a="hello";
String b=a;//这时不会复制一份“hello”而是引用了a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式