Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象引用未在C上设置错误#_C#_Object_Reference_Command Line Interface_Object Reference - Fatal编程技术网

C# 对象引用未在C上设置错误#

C# 对象引用未在C上设置错误#,c#,object,reference,command-line-interface,object-reference,C#,Object,Reference,Command Line Interface,Object Reference,我不熟悉Visual C,只想创建一个基于CLI的小型应用程序。使用下面的代码,我收到了这个错误:“对象引用未设置为对象的实例。”。 显然,因为我是个笨蛋,我不知道如何解决这个问题 下面是我在Program.cs中的代码: class Program { static void Main(string[] args) { GetAverage(args); } static void GetAverage(string[] s) {

我不熟悉Visual C,只想创建一个基于CLI的小型应用程序。使用下面的代码,我收到了这个错误:“对象引用未设置为对象的实例。”。 显然,因为我是个笨蛋,我不知道如何解决这个问题

下面是我在Program.cs中的代码:

class Program
{
    static void Main(string[] args)
    {
        GetAverage(args);
    }

    static void GetAverage(string[] s)
    {
        var ave = new Average();

        ave.arg = s;
        ave.FindAverage();
        ave.DisplayResult();
    }
}
以下是我在Average.cs中的代码:

public class Average
{
    public Average()
    {
        Console.Write("\n" + "Given numbers: ");

        foreach (string s in this.arg)
        {
            Console.Write(this.arg + " ");

            num += Double.Parse(s);
        }
    }

    public double num = 0;
    public string[] arg;
    public double result;

    public void FindAverage()
    {
        this.result = this.num / this.arg.Length;
    }

    public void DisplayResult()
    {
        Console.WriteLine("\n" + "Average: " + this.result);
    }
}
我想做的是从程序类的Main方法访问参数,这样我就可以从普通类使用它


请帮我拿这个。谢谢

字段
公共字符串[]arg
在构造函数中使用,但它是在构造函数运行后设置的。请尝试以下方法:

public Average(string[] arg)
{
    this.arg = arg

    // ..
    // existing code
}

var ave=新平均值()使构造函数执行。此时,
args
未设置,因此它将在
foreach(this.arg中的字符串s)
处给您一个错误。让您的构造函数使用
string[]args
并在构造函数开始时设置
this.arg=args
。感谢您的快速响应。你的答案,代码修订,完全解决了这个错误。但是现在,一个新的错误出现了。“输入字符串的格式不正确。”也许我只是输入了错误的数据类型?我正在将args解析为Double,以便进行计算。请尝试使用“.”而不是“.”表示小数(或者相反)。还要检查数组是否包含任何空字符串。