解决方案 »

  1.   


    可以在方法里面判断,if(param_WhereField.Length>0)
      

  2.   

    param_WhereField.GetLength(0) == 0
      

  3.   

    param_WhereField[0]
    这里边 没有数据的。
      

  4.   

    可变数组参数的参数个数是可变的,其实后台隐含帮你做了一个创建数组的操作。这也就是为何params参数只能是在方法最后面,因为编译器可以判断出哪些参数是需要放到可变数组里。
    第一个方法,后台相当于帮你创建了一个string aaa = new string[0];的数组。
    第二个方法,后台相当于帮你创建了一个string aaa = new string[1];的数组。
    其实你跟踪一下代码就知道了。第一个param_WhereField 其实是{string[0]},第二个是{string[1]},所以第一个不为null,因为已经new了,但是里面元素个数为0,所以你范围第一个元素的时候就会说索引超过范围。
      

  5.   


          string strresult = string.Empty;
          if (param_WhereField == null || param_WhereField.Length == 0)
          {
            strresult = "param_WhereField is null";
          }
          else
          {
            strresult = "param_WhereField not null~~~~~~~~~~";
            strresult = param_WhereField[0];
          }
          return strresult;