Neue Klasse mit ausgelesenem Namen erstellen



  • Hallo,
    ich möchte mehrere Dateien auslesen und aus denen bestimmte Werte speichern. Dazu möchte ich jeweils eine neue Klasse erstellen die den namen der Datei besitzt.
    Meine Frage ist nun, wie kann ich dieser Klasse den Dateinamen übergeben.
    Der Dateiname ist schon ausgelesen und befindet sich im string dateiname
    Beim erstellen der Klasse mit

    Funktionsgraph dateiname = new Funktionsgraph();
    

    gibt er mir logischerweise den Fehler aus, dass dateiname schon erstellt ist. Gibt es einen anderen Befehl 😕
    Vielen Dank.



  • Ich glaube nicht, dass das überhaupt geht (könnte mich natürlich auch täuschen 🙄 ). Aber wieso willst du sowas machen, ich verstehe denn Sinn dahinter nicht ganz.



  • hy, du könntest der klasse einen TAG mit "namen" machen, und dann jeweils eine Klasse erstellen und den FileNamen übergeben.. so hast du zB 20 klassen mit dne Tag Namen , der dem File entspricht.
    lg



  • Ich nehme an du meinst Objekte und nicht Klassen und willst nachher über den Dateinamen darauf zugreifen.Ich würde das mit einen Dictonary machen.

    Dictonary<string,Funktionsgraph> graphen = new Dictonary<string,Funktionsgraph>();
    
    void Einlesen();
    {
     string[] dateinamen = new string[]{"datei_1.txt","datei_2.txt","datei_3.txt"};
     foreach(string dateiname in dateinamen)
     {
       if(!graphen.ContainsKey(dateiname))
       {
         graphen.Add(dateiname,new Funktionsgraph());
         graphen[dateiname].Dateiinhalt =  System.IO.File.ReadAllText(dateiname);
         ......
       }
     }
    }
    


  • Ok, ich habe Klasse mit Objekt verwechselt. Meinte natürlich Objekt. Hat auch ganz gut geklappt. Habe gelesen, dass man mit der Hashtable eine Auflistung aller Objekte bekommt, dazu müsste man aber doch immer einen neuen Verweis hinzufügen, oder? Wie könnte man dies am Sinnvollsten machen. Habe mir gedacht, dass man dann alle beispielsweise in einer Combobox anzeigen und auswählen kann. Oder gibt es einen einfacheren Befehl als Hashtable?
    Meine zweite Frage ist, da ich mit mehreren Klassen, also auch mit mehreren Codedateien arbeite, wie kann ich, wenn ich etwas in Main deklariere (initialisiere), diese auch in den andeen Klassen sehen. Muss ich diese beim Aufruf der anderen Funktionen immer übergeben?


Anmelden zum Antworten