#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() 😉