我有以下代码,我的问题是,当我引用变量时,它给出了错误:每个变量的非静态字段,方法或属性都需要对象引用。我知道这与我的public int和public double非静态有关,但我不知道如何修复它。有人可能会告诉我吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace homework3
{
public class Program
{
public int number_of_scores;
public double score, total_score = 0, high_score, low_score, average;
}
class Class1{
static void Main(string[] args){
Console.Write("please enter the number of scores that you
wish to process? ");
Program.number_of_scores = int.Parse(Console.ReadLine());
Console.Write("Please enter score " + 1 + " ");
Program.score = double.Parse(Console.ReadLine());
Program.high_score = Program.score;
Program.low_score = Program.score;
Program.total_score = Program.total_score = Program.score;
for (int i = 2; i <= number_of_scores; i++);
}
}
class class2
{
static void Main(string[] args){
Console.Write("Please enter score " + i + " ");
Program.score = double.Parse(Console.ReadLine());
Program.total_score = Program.total_score + Program.score;
if(Program.score > Program.high_score)
Program.high_score = Program.score;
if(Program.score < Program.low_score)
Program.low_score = Program.score;
}
}
class Class3
{
static void Main(string[] args){
Program.average = Program.total_score / Program.number_of_scores;
Console.WriteLine("you entered " + Program.number_of_scores +
" scores");
Console.WriteLine("The high score is " + Program.high_score);
Console.WriteLine("The low score is " + Program.low_score);
Console.WriteLine("the average score is " + Program.average);
}
}
答案 0 :(得分:1)
在行中:
Program.number_of_scores = int.Parse(Console.ReadLine());
您尝试从静态方法引用实例变量number_of_scores
。
最简单的方法是将number_of_scores
声明为静态:
static public int number_of_scores;
您的其他一些字段存在同样的问题。
答案 1 :(得分:1)
您需要将number_of_scores和得分(以及其他变量)声明为静态。
public static int number_of_scores;
public static double score, //etc