Veröffentlicht 2. Januar 201015 j Hallo Ich hätte mal ne theoretische frage. Ich arbeite mit c# Hier erstmal ein kleines (sehr einfaches) szenario: Ich hab eine Klasse, z.B. public class SimpleClass { public SimpleClass(double val) { this.val = val; } public double Val { get { return val; } set { val = value; } } public void Increment() { this.Val++; } public void Decrement() { this.Val--; } private double val; } Nur möchte ich aus einer Windows-Form (oder einer anderen Klasse) heraus wissen, wieviel funktionen diese klasse hat. Ich dachte da an i-was in der richtung. Mit ner foreach-schleife über die klasse gehen. Hoffe es is klar was ich mein. Geht das i-wie???
3. Januar 201015 j Prinzipiell kannst Du per Reflection über den Typ eines Objects alle Methoden dieses Typs auflisten. Beispiel (ungetestet): KlasseIrgendwas a = new KlasseIrgendwas(); Type t = a.GetType(); MethodInfo[] methods = t.GetMethods(); foreach (MethodInfo mi in methods) { Console.WriteLine(mi.Name); } dieses müsste Dir alle "Public" Methoden eines Typs ausgeben. Um andere Methoden zu bekommen, kannst Du entweder das MemberInfo direkt benutzen oder eine andere Überladung von "GetMethods" aufrufen.
28. Januar 201015 j Autor Ok, das mit den Methoden auflisten klappt. Nun habich ein weiteres problem. Etz wenn ich alle Funktionen aufgelistet habe, ordne ich jedem Namen einen Button zu. Wenn der Button gedrückt wird, dann soll diese Funktion aufgerufen werden. Weiß einer von euch zufällig wie ich das anstelle??? Ich hab hier ja nur den Namen der Funktion als String. Wie bekomme ich daraus jetzt nen funktionsaufruf???
28. Januar 201015 j Autor Ok, damit hab ich die Funktion, die ich suche, aber wie führe ich diese nun aus???
28. Januar 201015 j Wie wärs wenn du selber mal nen Blick in die Hilfe bzw. Dokumentation dazu wirfst? GetMethod gibt ein MethodInfo zurück und das hat eine Methode Invoke was die Methode aufruft...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.