none
Wie kann man eine Variable in den Objektnamen lassen? RRS feed

  • 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

    Donnerstag, 26. März 2015 15:35

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




    Donnerstag, 26. März 2015 21:40

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

    Donnerstag, 26. März 2015 15:49
    Moderator
  • 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

    Donnerstag, 26. März 2015 16:20
  • 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

    Donnerstag, 26. März 2015 16:32
    Moderator
  • 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




    Donnerstag, 26. März 2015 21:40