比如我想在split的重载中使用char类型的分隔符,但是我就想把char类型分隔符的数组直接写在括号里如下:string s1="我是罗玉凤";
string s2=s1.split(new char[]{'.'}, StringSplitOptions.RemoveEmptyEntries)如上是正确的,但是我一直不理解这个 new char[]{','}
我一直会直接写{','}然后报错
听别人说了要声明对象,所以用new关键字那么又有一个疑惑:这个数组是不是没有指针?也就是没有向变量一样的指向内存,地址生命周期很短,传送参数后就结束了?

解决方案 »

  1.   

    当然 有了,只不过是给split传参用的,split内部有效
      

  2.   

    new char[]{','}
    就是生成一个char类型的数组对象,其长度和内容有{}内部的东西指定,这里是长度为1,内容为','。
    这个数组对象不会赋给任何一个变量,可以说是匿名对象,直接传进split函数。
      

  3.   

    C#中的数组属于引用类型,也就是传递的是地址,所以当然要使用New了
      

  4.   

    不太清楚{','}这种方式是不是合法,因为C# 2.0之后的版本加入很多syntax sugar. 
      

  5.   

    哦,谢谢。那哪些类型的参数必须实例化呢?就像数组一样要new
      

  6.   

    哦,谢谢。那哪些类型的参数必须实例化呢?就像数组一样要new
      

  7.   

    这个范围就大了,一般的类,数组,泛型,结构体等都要new的