c#中new为什么不可以对string类型使用?

以下三条语句string[]a=newstring[5];stringa=newstring();inta=newint();为什么第二条是错误的?为什么第一条又是正确的... 以下三条语句
string[] a = new string[5];
string a = new string();

int a = new int();
为什么第二条是错误的?为什么第一条又是正确的呢?
展开
 我来答
sarueu
推荐于2017-11-26 · TA获得超过813个赞
知道小有建树答主
回答量:230
采纳率:100%
帮助的人:200万
展开全部
string是String类的别名,引用类型,且该类型是只读的,不可修改,当你修改字符串内容时,实际上是创建了另一个新的字符串并将引用指向了它,你可以参考String类型的构造函数说明,就明白错在哪里了。第一条只是创建了一个String类型的数组,并未对其初始化,如果你对该数组中的任一成员使用第二条的方法进行初始化,一样会报错。
String类型构造函数参考:http://msdn.microsoft.com/zh-cn/library/system.string.string(v=vs.80).aspx
追问
为什么不能理解为实例化了一个String呢?
追答
你实例化的话,值在哪里?String是引用类型,你不创建一个实例如何进行引用?
实例化的话可以用:
string a = "abcd";
或者
String a = new String(new char[]{'a','b','c','d'});
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式