C#中 String 到底是引用类型还是值类型? 很疑惑为什么书上说的都自相矛盾啊!
例子stringstr="abc";书上说1所有引用类型变量都必须用New关键字;2String类型是引用类型那么为什么这里的例子中的表达式没有写成stringstr=N...
例子 string str="abc";
书上说
1 所有引用类型变量都必须用New关键字;
2 String类型是引用类型
那么为什么这里的例子中的表达式没有写成 string str=New string("abc");
非常疑惑。请各位帮忙解释清楚。谢谢
有网上说string可以看作是值类型中的int一样来声明变量,
那么是否可以理解String类型既是值类型,又是引用类型? 展开
书上说
1 所有引用类型变量都必须用New关键字;
2 String类型是引用类型
那么为什么这里的例子中的表达式没有写成 string str=New string("abc");
非常疑惑。请各位帮忙解释清楚。谢谢
有网上说string可以看作是值类型中的int一样来声明变量,
那么是否可以理解String类型既是值类型,又是引用类型? 展开
2个回答
展开全部
这个讨论已经很多了,你随便搜索以下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/
http://blog.csdn.net/lijinlin/article/details/6093629
http://xiachanghao1990.blog.163.com/blog/static/4869602420114632835414/
展开全部
对于新建.net框架的String类时,.net的各个语言是必须用类似
String s=new String(....); //String类属于.net框架
但C#语言环境下定义了小写的string(作为String类的别名),作为语言组成部分的关键字;也定义了"abc"作为字符串的表现法。都不同于新建对象的语法。
String类属于引用类型,因为
String a="hello";
String b=a;//这时不会复制一份“hello”而是引用了a;
String s=new String(....); //String类属于.net框架
但C#语言环境下定义了小写的string(作为String类的别名),作为语言组成部分的关键字;也定义了"abc"作为字符串的表现法。都不同于新建对象的语法。
String类属于引用类型,因为
String a="hello";
String b=a;//这时不会复制一份“hello”而是引用了a;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询