Benutzer mit den meisten Antworten
Wie kann man eine Variable in den Objektnamen lassen?

Frage
-
Hallo,
Ich habe eine for-Schleife programmiert.
Und in dieser Schleife soll eigentlich in den Objekt Namen die Zahl der integer-Variable stehen.
Wie macht man das?
Also der Objektname Schüler soll so etwas ähnliches wie beim ausgeben beim Textboxen etc. dies stehen: {0}, AnzahlderSchüler.
Danke
Antworten
-
Hallo,
meinst du vielleicht das?
Schüler[] sch = new Schüler [10]; for (int anz = 0; anz < 10; ++anz) { sch[anz] = new Schüler () { Name = "Schüler " + (anz + 1)}; }
Gruß Heiko
- Bearbeitet Heiko65456465 Donnerstag, 26. März 2015 22:11
- Als Antwort markiert schuayb Kazrabatli Samstag, 28. März 2015 07:36
Alle Antworten
-
Hallo,
wirklich verstanden habe ich zwar nicht was du willst, meine aber zu wissen wo das Problem liegt.Einen Integer kannst du per ToString-Methode in einen String wandeln:
var integerAsString = mInteger.ToString();
Diesen String kannst du dann auch noch mit anderen verknüpfen bevor du ihn ausgibst:textBlock1.Text = "Anzahl der Schüler: " + integerAsString;
Welchen Sinn deine Schleife haben soll kann ich aber nicht nachvollziehen. Du erzeugst bei jedem Durchlauf einen Schüler und verwirfst ihn gleich wieder. Auch solltest du dir bewusst sein, das du die Schüler-Klasse in ihr selbst verwendest. Das macht nur in wenigen Fällen Sinn.
Sinnvoller wäre wohl ein Liste von Schülern anzulegen:List<Schüler> schueler =new List<Schüler>(); //Element hinzufügen: schueler.Add(new Schüler()); //Anzahl von Schülern abrufen: var anzahl = schueler.Count;
PS: Auch wenn es in .NET keine Probleme macht, solltest du besser auf Umlaute in Bezeichnern verzichten. Also besser Schueler oder aber gleich alles auf englisch benennen.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Vielen Dank für ihre Antwort.
Ich meinte dass bei der for() Schleife dass anzahlderschüler-Wert mit als in den Namen wird.
Also, Objekt soll mit den Wert der anzahlderschüler mit sein.
Also in diesen Fall bis zehn:
anzahlderschüler1
anzahlderschüler2
.......
Und das als Objekten name.
Vielen Dank
-
Ohne dem Beispiel hätte ich es wieder nicht verstanden. Dein Ausdruck ist eine Katastrophe :/
Die Objektnamen kannst du nicht variabel vergeben. Diese müssen immer fest sein. Für so etwas nutzt man dann Listen oder Arrays.
int[] anzahlderschüler=new int[10]; anzahlderschüler[0]=12;//1. Element anzahlderschüler[1]=12;//2. Element //usw.
Oder eben wie oben gezeigt mit einer List<T>. (Solltest du beides bereits kennen, da beides (Listen und Arrays) Grundlagen sind.)
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Hallo,
meinst du vielleicht das?
Schüler[] sch = new Schüler [10]; for (int anz = 0; anz < 10; ++anz) { sch[anz] = new Schüler () { Name = "Schüler " + (anz + 1)}; }
Gruß Heiko
- Bearbeitet Heiko65456465 Donnerstag, 26. März 2015 22:11
- Als Antwort markiert schuayb Kazrabatli Samstag, 28. März 2015 07:36