在Tamarin Studio中,有关“无法在静态类中声明实例成员”的错误消息

时间:2016-03-22 16:29:21

标签: c# methods compiler-errors

我正在尝试用C#创建一个控制台二次计算器。 但是错误“访问非静态成员需要对象引用” 在变量“A”“B”和“C”的行上; 但是,当我向MainClass类添加静态时, 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 ());
    }
}

}

1 个答案:

答案 0 :(得分:2)

出现此错误的原因是Main方法为static

public static void Main (string[] args)
{
    ...
}

并且在静态方法中,您尝试访问非静态成员

double A, B, C;

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

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