如题,现在我有几行代码是这样的,string file = Request["XXX"] == null ? "" : Request["XXX"];
string[] filePath = (file.IndexOf(',') > -1) ? file.Split(',') : {file};这样就会报错,
但是我改成下面这样就不会出错string file = Request["XXX"] == null ? "" : Request["XXX"];
string[] test = { file };
string[] filePath = (file.IndexOf(',') > -1) ? file.Split(',') : test;请问这是什么原因,,求解答,,谢谢。

解决方案 »

  1.   

    可以改成
    new String[]{file};
      

  2.   

    string[] test = { file };
    这属于初始化,可以这样,报错的那个属于=号赋值,不可以类型不一致
      

  3.   

    = 赋值号左边是 string[] 右边是string,你让人家怎么赋值呢?
      

  4.   


    高手,你说string怎么赋值给string[]?
    string[] filePath = (file.IndexOf(',') > -1) ? file.Split(',') : test;
    string[]  = bool ? string[]: string ;
      

  5.   

    高手,顺便再告诉你一下,
    string[] test = { file };
    这个一点错误都没有。
      

  6.   


    这位哥,感谢你的回答,不过你可能没有看清楚我的问题,string[] test = { file };这个确实是没错误的,报错的那里也并不是把string赋值给string[],用孟子E章的果然可以,感谢2楼说出原因,谢谢,马上结贴。。
      

  7.   

    确实 人家孟子回答的是报错的那种形式下直接把{file}改成 new string[] {file}。。这样应该对的。。原来错误是因为没有实例化 相当于没有匹配类型
      

  8.   

    嗯,是的,后面我定义成{file}的本意是想把string转成数组,string[]  = bool ? string[]: string[] ;这样的,但是直接用{file}会报错,我不知道为什么,现在知道,原来是类型没有匹配,这个并没有转成string[],谢谢你的悉心回答,,感谢。。