2016-10-03 2 views
1

Ich habe ein Array, in dem der Benutzer 5 Jobs einfügt, die Beschreibung, Stunden bis zum Abschluss und Stundenlohn enthalten. Entschuldigung für die neue Frage, da ich neu in dieser Sprache bin. Jede Hilfe wäre willkommen.C# Array druckt keinen Inhalt aus

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

Wenn ich versuche, den Inhalt des Arrays zu drucken es ausdruckt

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

diese Schleife mit

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

Wie soll .Net wissen, was Sie wollen ein 'Job' Typ wie auf der Konsole suchen? Sie benötigen eine ToString() -Methode, die das angibt. –

+0

Sie behandeln eine Klasse wie eine einzelne Variable, wenn jeder Job verschiedene Eigenschaften oder Felder (oder beides) hat. Jeder von diesen muss behandelt werden. Sie können Console.WriteLine (jobArray [0] .Job.Description) aber –

Antwort

2

ich dies nur jotted in Notepad, aber in Ihrem Job Klasse Sie sollten etwas wie die folgenden für Ihr Programm haben, um zu wissen, was gedruckt werden soll:

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

würden Sie tun

Console.WriteLine(job1.ToString()); 
+0

oder jobArray [0] .ToString() ;-) –

+0

@Rob das ist richtig, ich habe meine Antwort bearbeitet – KingDan