你在这行设个断点,按f10运行这行时,看path的内容是什么就明白了

解决方案 »

  1.   

    为什么要这样来判断? indexOf  Contains
      

  2.   

    你想想当判断到倒数第三个字符的时候,往后再去4个字符,那么最后一个是不是不存在,也就是超过了索引。
    加个判断即可private string getPath(string path) 
     {
              int t;
              for (t = 0; t <= path.Length-4; t++) 
              {           
                     if (path.Substring(t, 4) == "code") 
                     {
                         break;
                     }
              }
     }
      

  3.   

    举个例子,path="abcode“;当然你要判断字符串中是否包含某个字符串的话,string  path= "abcode";  
    if(path.indexOf("code") >= 0 )  
    {  
        //包含子字符串
    }  
    else
    {
       //不包含子字符串
    }
      

  4.   

    因为path中没有code,而你循环到了path.Length - 1
    此时后面的字符串不足4个非要你那么写,并且不出错,可以用
    if (path.Substring(t, 4).StartsWith("code")) 
      

  5.   

    c#里 字符串的索引从0开始,你的substring里指定是4 其实就是取第五个,code哪有第五个字符,所以就报异常。
      

  6.   

    这样肯定是有误的!!
    private string getPath(string path) 
            {
                int t;
                for (t = 0; t < path.Length; t++) 
                {           
                    if (path.Substring(t, 4) == "code") 
                    {
                        break;
                    }
                }
    假设你的path有6位,但是如果没有code这个值的话,Substring从t开始截取4为肯定是超出界限啦!!
    path="123456";
    当你的t等于3的时候就会出错了!!
    为什么不使用indexOf呢??这样又不需要循环
    直接
    if(path.indexOf("code")>=0)
    {
         //TO DO
    }
      

  7.   

    用 string 类自带的 Contains 方法不好吗?