C# 一条关于“的错误消息正在抛出”;无法在静态类中声明实例成员;在塔玛林工作室

C# 一条关于“的错误消息正在抛出”;无法在静态类中声明实例成员;在塔玛林工作室,c#,methods,compiler-errors,C#,Methods,Compiler Errors,我正在尝试用C#创建一个控制台二次计算器。 但是错误“访问非静态成员需要对象引用” 在带有变量“A”、“B”和“C”的行上; 但是,当我向MainClass添加static时, Xamarin Studio告诉我“不能在静态类中声明实例成员” 我已经到了放弃尝试解决这个问题的地步了 如果您能告诉我在哪里更改代码以及为什么不起作用,我将不胜感激 using System; namespace CsharpConceptsCrashCourse { class MainClass { do

我正在尝试用C#创建一个控制台二次计算器。 但是错误“访问非静态成员需要对象引用” 在带有变量“A”、“B”和“C”的行上; 但是,当我向MainClass添加static时, Xamarin Studio告诉我“不能在静态类中声明实例成员”

我已经到了放弃尝试解决这个问题的地步了

如果您能告诉我在哪里更改代码以及为什么不起作用,我将不胜感激

using System;

namespace CsharpConceptsCrashCourse
{
class MainClass
{
    double A, B, C;
    public static void Main (string[] args)
    {
        Begin ();
        Console.WriteLine("Root 1 : {0}, Root 2: {1}",
        QRoot(A,B,C,"NEG"),QRoot(A,B,C,"POS"));

    Console.ReadKey ();

    }

    public static double QRoot(double a,double b,double c, string VL){
        double top = Math.Pow (b, 2) - (4 * a * c);

        if (VL == "POS") {

            double topf = (-1 * (b)) + Math.Sqrt (top);
            return (topf / (2 * a));

        } else{

            double topf = (-1 * (b)) - Math.Sqrt (top); 
            return (topf / (2 * a));

        }
    }
    public static void Begin(){

        Console.WriteLine ("Welcome to the quadratic calculator:");
        Console.WriteLine ("Enter your three values for \na , b, and c \nfrom the standard format");
        Console.WriteLine ("A:");
        A = Convert.ToDouble (Console.ReadLine ());
        Console.WriteLine ("B:");
        B = Convert.ToDouble (Console.ReadLine ());
        Console.WriteLine ("C:");
        C = Convert.ToDouble (Console.ReadLine ());
    }
}

}此错误的原因是您的
Main
方法是
static

public static void Main (string[] args)
{
    ...
}
在该静态方法中,您尝试访问非静态成员:

这是不可能的,因为只能通过类的实例访问非静态实例成员。
因此,最直接的解决方案是将这些成员也声明为静态的:

class MainClass
{
    static double A, B, C;
    ...
}

此错误的原因是您的
Main
方法是
static

public static void Main (string[] args)
{
    ...
}
在该静态方法中,您尝试访问非静态成员:

这是不可能的,因为只能通过类的实例访问非静态实例成员。
因此,最直接的解决方案是将这些成员也声明为静态的:

class MainClass
{
    static double A, B, C;
    ...
}