我正在尝试用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 ());
}
}
}
答案 0 :(得分:2)
出现此错误的原因是Main
方法为static
:
public static void Main (string[] args)
{
...
}
并且在静态方法中,您尝试访问非静态成员:
double A, B, C;
这是不可能的,因为非静态实例成员只能通过您的类的实例访问
因此,直接的解决方案是声明那些成员static
:
class MainClass
{
static double A, B, C;
...
}