void per string ansprechen



  • Hallo,
    ich möchte eine Architektur wie im CMD aufbauen, soll heißen Befehlseingabe -> Ausführung.
    Jetzt finde ich es nicht sehr produktiv den Eingabestring abzufragen und im Code jeweils die Methode hinzuschreiben, deshalb würde ich gerne den Eingabestring quasi in eine Methode umwandeln und diese aufrufen.

    Nochmal in Pseudocode:

    static void Bla() {...}
    static int Main(object[] Args)
    {
       string sMethode = Console.Readline();
       vMethode = wandeleinmethodeum(sMethode);
       vMethode();
    }
    

    Wenn es aussichtslos ist ruhig sagen ^^ danke.



  • Stichwort: Reflection



  • Also ich hab jetzt ein bisschen was zusammen gebastelt mit Reflections ich weiß nicht ob es der richtige Weg ist auf jeden Fall kommt die Fehlermeldung: "Das Objekt stimmt mit dem Zieltyp nicht überein."

    private void button1_Click(object sender, EventArgs e)
            {
                Befehle befehle = new Befehle();
                MethodInfo methode = befehle.GetType().GetMethod("Ausgabe");
                methode.Invoke(this, new object[] { "Hallo" });
            }
    
            class Befehle
            {
                public void Ausgabe(string test)
                {
                    MessageBox.Show(test);
                }
            }
    


  • Du mußt ja auch das richtige "Befehle"-Objekt übergeben:

    Befehle befehle = new Befehle();
    MethodInfo methode = befehle.GetType().GetMethod("Ausgabe");
    methode.Invoke(befehle, new object[] { "Hallo" });
    


  • Oh dankeschön jetzt klappts super


Anmelden zum Antworten