C#方法调用

C#方法调用,c#,class,methods,C#,Class,Methods,我从C#开始,一般都是编码 我曾尝试编写一个基于控制台的三项式计算器,但在main方法(Calculate和DisplayResult)中最后两个方法的参数方面遇到了问题。 Visual studio一直在说: 没有给出与所需的形式化参数相对应的参数 参数 有人能帮我吗 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks

我从C#开始,一般都是编码

我曾尝试编写一个基于控制台的三项式计算器,但在main方法(
Calculate
DisplayResult
)中最后两个方法的参数方面遇到了问题。 Visual studio一直在说:

没有给出与所需的形式化参数相对应的参数 参数

有人能帮我吗

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TrinomialCalculator
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Trinomial Calculator");
            Console.WriteLine("====================");
            Console.ReadLine();
            Console.Clear();
            GetValues();
            Calculate();
            DisplayResult();
        }
        static int[] GetValues()
        {
            int[] values = new int[3];
            string numInput;
            Console.WriteLine("ax^2+bx+c");
            Console.WriteLine("=========");
            Console.ReadLine();

            while (true)
            {
                Console.WriteLine("Enter an integer for 'a': ");
                numInput = Console.ReadLine();
                int.TryParse(numInput, out values[0]);
                Console.WriteLine("Enter an integer for 'b': ");
                numInput = Console.ReadLine();
                int.TryParse(numInput, out values[1]);
                Console.WriteLine("Enter an integer for 'c': ");
                numInput = Console.ReadLine();
                int.TryParse(numInput, out values[2]);

                if (values[0] == 0 || values[1] == 0 || values[2] == 0)
                {
                    Console.WriteLine("One or more inputs are invalid. Try again.");
                    Console.ReadLine();
                    Console.Clear();
                    continue;
                }
                else
                {
                    break;
                }
            }
            Console.WriteLine("{0}x^2+{1}x+{2}", values[0], values[1], values[2]);
            Console.ReadLine(); 
            Calculate(values);
            return values;
        }
        public static double[] Calculate(int[] values)
        {
            double[] result = new double[2];
            result[0] = -values[1] + Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
            result[1] = -values[1] - Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
            DisplayResult(result);
            return result;
        }
        static void DisplayResult(double[] result)
        {
            Console.WriteLine("X(1)={0}\n X(2)={1}", result[0], result[1]);
            Console.ReadKey();
        }
    }
}

方法
Calculate
DisplayResult
有1个参数,但它们用0个参数调用

按如下方式更改代码:

static void Main(string[] args)
{
    Console.WriteLine("Trinomial Calculator");
    Console.WriteLine("====================");
    Console.ReadLine();
    Console.Clear();
    double[] x =  Calculate(GetValues());
    DisplayResult(x);
}

您没有将参数传递给方法。代码中还有一些东西是不需要的,比如while(true)循环和else子句没有任何作用

我重写了一点。和你的比较,看看你的想法

祝你学习编程好运。这是一个伟大的职业

using System;

namespace TrinomialCalculator
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Trinomial Calculator");
            Console.WriteLine("====================");
            GetValues();
            Console.ReadLine();
        }
        static void GetValues()
        {
            Console.WriteLine("ax^2+bx+c");
            Console.WriteLine("=========");

            string numInput;
            int[] values = new int[3];

            Console.WriteLine("Enter an integer for 'a': ");
            numInput = Console.ReadLine();
            int.TryParse(numInput, out values[0]);
            Console.WriteLine("Enter an integer for 'b': ");
            numInput = Console.ReadLine();
            int.TryParse(numInput, out values[1]);
            Console.WriteLine("Enter an integer for 'c': ");
            numInput = Console.ReadLine();
            int.TryParse(numInput, out values[2]);

            if (values[0] == 0 || values[1] == 0 || values[2] == 0)
            {
                Console.WriteLine("One or more inputs are invalid. Try again.");
                return;
            }

            Console.WriteLine("{0}x^2+{1}x+{2}", values[0], values[1], values[2]);
            DisplayResult(values);
        }
        static double[] DisplayResult(int[] values)
        {
            double[] result = new double[2];
            result[0] = -values[1] + Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
            result[1] = -values[1] - Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
            Console.WriteLine("X(1)={0}\n X(2)={1}", result[0], result[1]);
            return result;
        }
    }
}

是的,两个人都很有帮助。谢谢你。然而,现在我正在努力理解为什么我的计算方法中的方程总是给我“NaN”…我怀疑这与C#无法用同样的方法处理int和double有关。