Ogument超出范围的例外

时间:2015-10-13 18:36:54

标签: c#

$.ajax({
                        url: '<%=request.getContextPath() %>/rest/tasks/file/'+temp_taskID+'?fileType=JPG' + 
                             '&fileName='+imgNames[i],
                        headers: {
                             'apiKey':'1xxxx3-dde5-4eec-b3ee-2xxxx507xxe8',
                             'ID':ID
                        },
                        type: "GET"
                    })
                    .done  (function(data, textStatus, jqXHR) {
                        $("#img_carousel").attr("src", "data:image/jpeg;base64," + data);                  
                    })
                    .fail  (function(jqXHR, textStatus, errorThrown) {});

请原谅我的草率代码。我只是想知道为什么我得到一个Argument Out Of Range错误?老实说,我不知道我打算怎么做。它刚刚发生。我已经指出了错误发生的地方。

1 个答案:

答案 0 :(得分:0)

完成计算并将Calc缩减到运算符左侧的部分后,您仍然可以循环运算符。当您检查下一个运算符时,字符串中不再有运算符,即index指向字符串之外的位置。

不是循环遍历运算符以找到作为运算符的运算符,而是从字符串中获取运算符:

static void Main(string[] args) {
    Console.WriteLine("");
    string Calc = Console.ReadLine();
    char[] operands = { '+', '-', '/', '*' };
    int index = Calc.IndexOfAny(operands);
    if (index != -1)
    {
        Console.WriteLine(Calc.Substring(index));
        string thing = Calc.Substring(index + 1);
        char x = Calc[index];

        Calc = Calc.Substring(0, index);
        Calc = Calc.Replace(" ", "");
        Console.WriteLine("{0} first value",Calc);
        Console.WriteLine("{0} operand value", x);
        Console.WriteLine("{0} second value", thing);
        switch(x)
        {
            case '+':
                Console.WriteLine(Convert.ToInt32(Calc) + Convert.ToInt32(thing));
                break;
            case '-':
                Console.WriteLine(Convert.ToInt32(Calc) - Convert.ToInt32(thing));
                break;
            case '/':
                Console.WriteLine(Convert.ToInt32(Calc) / Convert.ToInt32(thing));
                break;
            case '*':
                Console.WriteLine(Convert.ToInt32(Calc) * Convert.ToInt32(thing));
                break;
        }
    }
    Console.ReadLine(); }