2013-02-16 56 views
1

我有下面的代码,我的问题是,当我引用变量时,它给了我错误:对象引用是非静态字段,方法,或每个变量的属性。我知道这是与我的公众诠释和公共双重是非静态的,但我不知道如何解决它。有人能告诉我可能吗?问题与非静态字段需要对象引用

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); 
    } 
     } 

回答

1

在行:

Program.number_of_scores = int.Parse(Console.ReadLine()); 

您尝试从静态方法引用实例变量number_of_scores

最微不足道的方式来获取工作是声明number_of_scores为静态:

static public int number_of_scores; 

你的一些其他领域的有同样的问题。

+1

....我觉得现在哑赫克哈哈哈 – Zi0n1 2013-02-16 03:02:40

+0

学习:-) – 2013-02-16 03:45:16

1

您需要将number_of_scores和score(以及其他变量)声明为static。

public static int number_of_scores; 
public static double score, //etc 
+0

的所有部分,我想我要问的是: 如何声明为静态的? 或 你会怎么做?我似乎无法像其他人那样做,因为他们是公开的,他们对我来说很奇怪,我对此不是很熟悉。 – Zi0n1 2013-02-16 03:00:18

+0

@ user2052853更新了答案。 – sparky68967 2013-02-16 03:02:12

相关问题