Object während einer Laufzeit erstellen und aufrufen.



  • Hallo,

    ich möchte in meinen Konsolenprogramm währed das programm läuft z.B ein neues Object. An sich funktioniert es auch, allerdings weiß ich jetzt nicht wie ich das jeweilige element aufrufe...

    List<Spieler> lSpieler= new List<Spieler>();
    

    Und das hinzufügen von Spielern:

    lSpieler.Add(new Ziegen(Name, Farbe, Level));
    

    Gruß.



  • da muss natürlich

    lSpieler.Add(new Spieler(Name, Farbe, Level));
    

    stehen...



  • Entweder über einen Index(wenn du weißt, wie die Position in der List ist) oder über eine Linq Abfrage z.B.



  • Habe versucht über den index... aber ging nicht..

    lSpieler.IndexOf(i) oder lSpieler[i]
    

    oder? Wenn ja, komme dadrüber aber nicht an die farbe... i aufgrund, weil es in einer foreach schleife ist.



  • Beschreibe genauer wo das Problem liegt und zeige mehr Code. Keine Lust auf Ratespielchen.



  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Spiel
    {
        class Program
        {
            static void Main(string[] args)
            {
                int nSpieler;
                List<Spieler> lSpieler = new List<Spieler>();
    
                do
                {
                    Console.WriteLine("Spieler Erstellen?[1 = ja]");
                    nSpieler = Convert.ToInt32(Console.ReadLine());
    
                    if (nSpieler== 1)
                    {
                        string Name = Console.ReadLine();
                        int Farbe = Convert.ToInt32(Console.ReadLine());
                        int Level = Convert.ToInt32(Console.ReadLine());
    
                        lSpieler.Add(new Spieler(Name, Farbe, Level));
    
                    }
                } while (nSpieler == 1);
    
                Console.WriteLine("Welche Spieler soll verwaltet werden?:");
    
                foreach (Spieler i in lSpieler)
                {
                    Console.WriteLine("test");
                }
            }
        }
    }
    


  • Na dann greife doch einfach über i (bekloppter Name btw.) auf die öffentlichen Properties und Methoden des Objekts zu.
    i.Farbe = ...
    i.Clusterfuck();



  • Geht ja nicht... wenn ich i. drücke kommt keine auswahl für meine Attribute.



  • Und wie sieht die Klasse Spieler aus?
    Muss man Dir wirklich alles aus der Nase ziehen?



  • Habe den fehler gefunden...
    Vergessen "public" zu schreiben...


Anmelden zum Antworten