Member 14637431 Ответов: 1

Вызов чего-то из другого класса


Я работаю над арифметической программой и пытаюсь заставить ее проверять вводимые пользователем данные, а не делать математику в отдельном классе. Проблема в том, что я не могу получить ints в класс арифметики после проверки, и я не знаю, почему. Вот этот код.
    static void Main(string[] args)
        {
            

            Console.WriteLine("Enter the first integer");
            string numberOne = Console.ReadLine();

            Console.WriteLine("Enter the second integer");
            string numberTwo = Console.ReadLine();

            Console.WriteLine("Enter the third integer");
            string numberThree = Console.ReadLine();

            Console.WriteLine("Enter the fourth integer");
            string numberFour = Console.ReadLine();

            Console.WriteLine("Enter the fifth integer");
            string numberFive = Console.ReadLine();


            Validate validate = new Validate();
            validate.ValidateMethod();
        }
    }
}


public void ValidateMethod()
       {
           string line = Console.ReadLine();
           int numberOne;
           int numberTwo;
           int numberThree;
           int numberFour;
           int numberFive;

           if (int.TryParse(line, out numberOne))
           {

               if (int.TryParse(line, out numberTwo))
               {

                   if (int.TryParse(line, out numberThree))
                   {
                       if (int.TryParse(line, out numberFour))
                       {
                           if (int.TryParse(line, out numberFive))
                           {

                               Arithmetic arithmetic = new Arithmetic();
                               arithmetic.ArithmeticMethod();

                           }
                       }
                   }
               }
           }


           else
           {
               Console.WriteLine("The entered integer is not valid.");
           }

       }


public class Arithmetic
  {
      public void ArithmeticMethod()
      {

          int numberOne;
          int numberTwo;
          int numberThree;
          int numberFour;
          int numberFive;

          numberOne = Convert.ToInt32(Console.ReadLine());

          numberTwo = Convert.ToInt32(Console.ReadLine());

          numberThree = Convert.ToInt32(Console.ReadLine());

          numberFour = Convert.ToInt32(Console.ReadLine());

          numberFive = Convert.ToInt32(Console.ReadLine());

          numberOne = Validate.numberOne;

           Sum(numberOne, numberTwo, numberThree, numberFour, numberFive);
           Average(numberOne, numberTwo, numberThree, numberFour, numberFive);
           Product(numberOne, numberTwo, numberThree, numberFour, numberFive);
           SmallestNumber(numberOne, numberTwo, numberThree, numberFour, numberFive);
           LargestNumber(numberOne, numberTwo, numberThree, numberFour, numberFive);


      }
      public static int Sum(int numberOne, int numberTwo, int numberThree, int numberFour, int numberFive)
      {
          int sum;
          sum = numberOne + numberTwo + numberThree + numberFour + numberFive;
          Console.WriteLine($"the sum of the integers is {sum}");
          return sum;
      }

      public static double Average(int numberOne, int numberTwo, int numberThree, int numberFour, int numberFive)
      {
          int average;
          int sum;
          sum = numberOne + numberTwo + numberThree + numberFour + numberFive;
          average = sum / 5;
          Console.WriteLine($"the average of the integers is {average}");
          return average;
      }

      public static int Product(int numberOne, int numberTwo, int numberThree, int numberFour, int numberFive)
      {
          int product;
          product = numberOne * numberTwo * numberThree * numberFour * numberFive;
          Console.WriteLine($"the product of the integers is {product}");
          return product;
      }


Конкретная ошибка, которую я получаю, заключается в том, что "'Validate' не содержит определения для 'number one'"

Что я уже пробовал:

вещи, предложенные из аналогичных вопросов на этом сайте и других

1 Ответов

Рейтинг:
11

phil.o

Вам следует изучить понятие переменной области видимости.
Переменные, которые вы объявляете и назначаете в своем Main метод недоступен для других методов.
Вы можете взглянуть на мой ответ на ваш предыдущий вопрос (Ошибка CS7036 ни один аргумент не соответствует требуемому формальному параметру[^]), который я отредактировал, чтобы посоветовать вам способ проверки ваших входных данных.
И ваш фактический код имеет ту же самую проблему: вы вычисляете методы, но не сохраняете их результаты. Я могу только предложить вам вернуться к учебнику для начинающих по методам, типам возвращаемых значений, переменным, областям видимости и т. д., Потому что то, что вы сейчас имеете, показывает, что вам не хватает некоторых очень важных понятий.