1

以下のコードがありますが、変数を参照するとエラーが発生するという問題があります。各変数の非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です。publicintとpublicdoubleが静的でないことと関係があることは知っていますが、修正方法がわかりません。誰かが私に見せてもらえますか?

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

2 に答える 2

1

行で:

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

静的メソッドからインスタンス変数を参照しようとします。number_of_scores

それを機能させる最も簡単な方法はnumber_of_scores、静的として宣言することです。

static public int number_of_scores;

他のフィールドのいくつかにも同じ問題があります。

于 2013-02-16T02:57:25.983 に答える
1

number_of_scoresとscore(およびその他の変数)を静的として宣言する必要があります。

public static int number_of_scores;
public static double score, //etc
于 2013-02-16T02:57:54.923 に答える