回 帖 发 新 帖 刷新版面

主题:[讨论]关于参数数组的问题

using System;
namespace useout
{    
    //参数数组的使用    
    public class Class1
   {
    int[] args = {13,27,33,25,78};
    public double avg(params int[] num)
    {
             float sum = 0;
        float count = 0;
           foreach(int n in num)
        {
        sum+=n;count+=1;
        }
        return (sum/count);
    }
    static void Main(string[] args)
    {
        Class1 cl = new Class1();    
        double d = avg(args[5]);
        Console.WriteLine(d);
    }
    }
}

在调用args[5]数组是报错:
⑴参数“1” : 无法从“string”转换为“int[]”
⑵与“useout.Class1.avg(params int[])”最匹配的重载方法具有一些无效参数
为什么?
求解决的方法。

回复列表 (共4个回复)

沙发

写错了一行语句
double d = avg(args[5]);应为double d = cl.avg(args[5]);


板凳


args是个C#已定义过的

3 楼

调用的时候写成:

double d = avg (int[] args);

4 楼

using System;
namespace useout
{    
    //参数数组的使用    
    public class Class1
   {
    static int[] args = {13,27,33,25,78};
    public double avg(params int[] num)
    {
             float sum = 0;
        float count = 0;
           foreach(int n in num)
        {
        sum+=n;count+=1;
        }
        return (sum/count);
    }
    static void Main(string[] args)
    {
        Class1 cl = new Class1();    
        double d = avg(this.args[5]);
        Console.WriteLine(d);
    }
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册