日期:2014-05-18  浏览次数:20713 次

刚开始学.Net,new关键字有个问题请问
比如我想在split的重载中使用char类型的分隔符,但是我就想把char类型分隔符的数组直接写在括号里如下:

string s1="我是罗玉凤";
string s2=s1.split(new char[]{'.'}, StringSplitOptions.RemoveEmptyEntries)

如上是正确的,但是我一直不理解这个 new char[]{','}
我一直会直接写{','}然后报错
听别人说了要声明对象,所以用new关键字

那么又有一个疑惑:这个数组是不是没有指针?也就是没有向变量一样的指向内存,地址生命周期很短,传送参数后就结束了?

------解决方案--------------------
当然 有了,只不过是给split传参用的,split内部有效
------解决方案--------------------
new char[]{','}
就是生成一个char类型的数组对象,其长度和内容有{}内部的东西指定,这里是长度为1,内容为','。
这个数组对象不会赋给任何一个变量,可以说是匿名对象,直接传进split函数。
------解决方案--------------------
C#中的数组属于引用类型,也就是传递的是地址,所以当然要使用New了