Массив c # не выводит содержимое

#c# #arrays

#c# #массивы

Вопрос:

У меня есть массив, в который пользователь вставит 5 заданий, которые включают описание, часы, необходимые для завершения, и почасовую оплату. Прошу прощения за вопрос новичка, поскольку я новичок в этом языке. Любая помощь будет оценена.

   private static void EnterJobs()
    {

        //string inputString;
        for (int i = 0; i < jobArray.Length; i  )
        {
            Job job = new Job();

            Console.WriteLine("Job "   i);

            Console.WriteLine("Enter a job description.");
            job.Description = Console.ReadLine();

            Console.WriteLine("Enter the amount of hours required to complete the job.");
            job.hoursToComplete = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Enter the hourly rate for the job.");
            job.hourlyRate = Convert.ToInt32(Console.ReadLine());

            jobArray[i] = job;
        }
  

Когда я пытаюсь распечатать содержимое массива, он выводится

 DemoJobs.Job
DemoJobs.Job
DemoJobs.Job
DemoJobs.Job
DemoJobs.Job
  

используя этот цикл

         for (int i = 0; i < jobArray.Length; i  )
        {
            Console.WriteLine(jobArray[i]);
        }
  

Комментарии:

1. Как следует . Net знаете, как вы хотите Job , чтобы тип выглядел на консоли? Вам нужен метод toString(), который сообщает об этом.

2. Вы обрабатываете класс как одну переменную, когда каждое задание имеет разные свойства или поля (или и то, и другое). Каждый из них должен быть обработан. Вы можете использовать консоль. WriteLine(jobArray[0].Job.Description), хотя

Ответ №1:

Я только что набросал это в Блокноте, но в вашем классе заданий у вас должно быть что-то вроде следующего, чтобы ваша программа знала, что печатать:

 public override string ToString()
{
    return this.Description   ", Hours: "   this.Hours.ToString()   ", Rate: "   this.Rate.ToString(); 
}
  

Тогда вы бы сделали

 Console.WriteLine(job1.ToString());
  

Комментарии:

1. или jobArray[0] . toString() 😉