c#中new为什么不可以对string类型使用?
以下三条语句string[]a=newstring[5];stringa=newstring();inta=newint();为什么第二条是错误的?为什么第一条又是正确的...
以下三条语句
string[] a = new string[5];
string a = new string();
int a = new int();
为什么第二条是错误的?为什么第一条又是正确的呢? 展开
string[] a = new string[5];
string a = new string();
int a = new int();
为什么第二条是错误的?为什么第一条又是正确的呢? 展开
1个回答
展开全部
string是String类的别名,引用类型,且该类型是只读的,不可修改,当你修改字符串内容时,实际上是创建了另一个新的字符串并将引用指向了它,你可以参考String类型的构造函数说明,就明白错在哪里了。第一条只是创建了一个String类型的数组,并未对其初始化,如果你对该数组中的任一成员使用第二条的方法进行初始化,一样会报错。
String类型构造函数参考:http://msdn.microsoft.com/zh-cn/library/system.string.string(v=vs.80).aspx
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'});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询