private void F1(object[] args)
    {
        Response.Write(args.ToString());
    }    //可以调用
    private void F2()
    {
        string[] args = new string[2];
        args[0] = "11111111";
        args[1] = "22222222";
        F1(args);
    }    //不能调用
    //报错:
    //编译器错误信息: CS1502: 与“F1(object[])”最匹配的重载方法具有一些无效参数
    private void F3()
    {
        int[] args = new int[2];
        args[0] = 1;
        args[1] = 2;
        F1(args);
    }

解决方案 »

  1.   

    问题:int[]不是object[]的类型吗?   我如果想要传入整形的数组怎么办
      

  2.   

    改成Array来操作,比如:
    private void F1(Array args)
    {
    Response.Write(args.ToString());
    }//可以调用
    private void F2()
    {
    string[] args = new string[2];
    args[0] = "11111111";
    args[1] = "22222222";
    F1(args);
    }//不能调用
    //报错:
    //编译器错误信息: CS1502: 与“F1(object[])”最匹配的重载方法具有一些无效参数
    private void F3()
    {
    int[] args = new int[2];
    args[0] = 1;
    args[1] = 2;
    F1(args);
    }
      

  3.   

    或者你改成如下的可变参数形式:private void F1(params object[] args)
    {
    //Response.Write(args.ToString());
    }//可以调用
    private void F2()
    {
    string[] args = new string[2];
    args[0] = "11111111";
    args[1] = "22222222";
    F1(args);
    }//不能调用
    //报错:
    //编译器错误信息: CS1502: 与“F1(object[])”最匹配的重载方法具有一些无效参数
    private void F3()
    {
    int[] args = new int[2];
    args[0] = 1;
    args[1] = 2; F1(args);
    }
      

  4.   

        private void F1(object[] args)
        {
            Response.Write(args.ToString());
        }
    这边就是得用object[]
      

  5.   

    那你这样改一下:private void F3()
    {
    int[] args = new int[2];
    args[0] = 1;
    args[1] = 2;
    object[] objs = new object[args.Length];
    Array.Copy(args, objs, args.Length);
    F1(objs);
    }