2016-12-10 3 views
-1

Ich mache meine Hausaufgaben. Ich habe eine Klasse namens "Person", und mit dieser Klasse muss der Benutzer einem Objekt der Personenklasse, seinem Nachnamen usw. einen Namen hinzufügen. Ich dachte, wäre es möglich, Variablen automatisch in der Schleife zu definieren? Ich habe eine Schleife, in der Benutzer Daten der Person eingibt. Schleife würde wie folgt aussehen:Ist es möglich, Variablen in Schleife automatisch zu deklarieren? C#

for (int n = 0; n < 20; n++) 
    { 
    Console.WriteLine("Input name of person no. {0}: ", n); 
    name = Console.ReadLine(); 
    Console.WriteLine("Input surname of person no. {0}", n); 
    surname = Console.ReadLine(); 

    Person pers+n = new Person(name, surname); 
    arr[n] = pers+n; 
    } 

So ist die Deklaration einer Variablen wäre so etwas wie pers + n sein. Ich habe keine Ahnung, wie ich Person-Objekte in dieser Schleife anders herum definieren würde. Vielen Dank!

+0

Sicher, gehen Sie einfach weiter: 'string name = ' – Gustav

+1

Sie denken„Ich schaffe die n-te Person "- aber du bist nicht. Du erschaffst nur * a * person und legst sie dann an den n-ten Platz deines Arrays. Oder vielleicht bekomme ich dich nicht richtig – SimpleVar

Antwort

2

können Sie

for (int n = 0; n < 20; n++) 
    { 
    Console.WriteLine("Input name of person no. {0}: ", n); 
    name = Console.ReadLine(); 
    Console.WriteLine("Input surname of person no. {0}", n); 
    surname = Console.ReadLine(); 

    Person pers = new Person(name, surname); 
    arr[n] = pers; 
    } 
0

Fügen Sie eine Klasse verwenden, um eine Sammlung von Personen zu halten.

public class Persons: List<Person> {} 

und Erstellen einer Instanz dieser Sammlung von Persons außerhalb der Schleife, und dann in der Schleife jede neue Person zu dieser Sammlung.

Persons = new Persons(); 
for (int n = 0; n < 20; n++) 
{ 
    Console.WriteLine("Input name of person no. {0}: ", n); 
    name = Console.ReadLine(); 
    Console.WriteLine("Input surname of person no. {0}", n); 
    surname = Console.ReadLine(); 
    persons.Add(new Person(name, surname)); 
} 

Die einzelnen Person Objekte in der Sammlung kann wie ein Array persons[index]

0

SimpleVar mein Problem beantwortet zugegriffen werden. Vielen Dank! Lösung:

for (int n = 0; n < 20; n++) 
{ 
Console.WriteLine("Input name of person no. {0}: ", n); 
name = Console.ReadLine(); 
Console.WriteLine("Input surname of person no. {0}", n); 
surname = Console.ReadLine(); 

Person pers = new Person(name, surname); 
arr[n] = pers; 
} 

I

+0

Das ist meine Antwort – Eldeniz

+0

@Eldeniz nicht kleinlich sein, wir haben ihm geholfen. – SimpleVar

+0

@SimpleVar Ich stimme dir zu, aber ich möchte, dass er meine Antwort akzeptiert – Eldeniz

1

versuchen, eine Liste Objekt

  List<Person> people = new List<Person>(); 
     for (int n = 0; n < 20; n++) 
     { 
      Console.WriteLine("Input name of person no. {0}: ", n); 
      name = Console.ReadLine(); 
      Console.WriteLine("Input surname of person no. {0}", n); 
      surname = Console.ReadLine(); 

      Person newPerson = new Person(name, surname); 
      people.Add(newPerson); 
     } 
Verwandte Themen