返回简化为null

时间:2017-07-07 13:19:34

标签: c#

所以,首先,我是初学者,在学校有6个月的C#经验。我可以用另一种方式做到这一点,但我想知道更多的方法来做事情所以.. 我需要帮助。发生的事情是,当我运行程序时一切正常,直到private void Add(),出现一些错误并说Simplify为null?提前谢谢。

using System;

namespace test1
{
 class Details
 {
    int NumberSimplify;
    double Solution;

    private void Ask()
    {
        Console.Write("Would you like to Add or Substract (1 - Add, 2 - Substract) -► ");
        int Opt = int.Parse(Console.ReadLine());

        switch(Opt)
        {
            case 1:
                Console.Write("\nHow many numbers would you like to add? -► ");
                NumberSimplify = int.Parse(Console.ReadLine());                    
                break;

            case 2:
                break;
        }
    }

    public void DisplayResult(double[] Simplify)
    {
        Console.Write("Result from Addition -► ", Add(Simplify));
    }

    private void AddDetails()
    {
        Ask();
        double[] Simplify = new double[NumberSimplify];
        Console.WriteLine();
        for (int i = 0; i < Simplify.Length; i++)
        {
            Console.Write("Number {0} -► ", i + 1);
            Simplify[i] = double.Parse(Console.ReadLine());
        }
    }



    private double Add(double[] Simplify)
    {
        AddDetails();
        for (int i = 0; i < Simplify.Length; i++)
        {
            Solution = Simplify[i] + Simplify[i + 1];
        }
        return Solution;
    }


}


class Execute
{
    public static double[] Simplify { get; private set; }

    static void Main(string[] args)
    {

        Details AddOrSub = new Details();
        AddOrSub.DisplayResult(Simplify);
        Console.ReadLine();

    }
}

}

1 个答案:

答案 0 :(得分:3)

简化确实是空的....

public static double[] Simplify { get; private set; } 

你需要初始化数组......所以这应该更像;

public static double[] Simplify { get; private set; } = new double[someNumberOfElements]

但正如评论中指出的那样,你甚至不使用这个变量的初始版本(无论如何都会在你的下一个方法中被覆盖),所以考虑完全删除它并重新访问你的控制流......