Ersetzung eines Methodenaufrufes

28/10/2007 - 02:26 von Michael | Report spam
Hallo,

ich habe folgende Methodenaufrufe:

InitSystem1(), InitSystem2(), InitSystem3()...

Ich möchte die Methode variabel aufrufen können in der Form:

string str = "InitSystem";
int zahl = 2;

Jetzt soll der Methodenaufruf zusammengebaut werden:
string strMethodenAufruf;
strMethodenAufruf = str + zahl;

Wie kann ich C# dazu überreden, den String strMethodenAufruf als
Methodenaufruf InitSystem2(); zu interpretieren?
Gibt es eine einfache Ersetzung in C#?

MfG, Michael

Lieber zu spàt als gar nicht!
 

Lesen sie die antworten

#1 Frank Dzaebel
28/10/2007 - 07:49 | Warnen spam
Hallo Michael,

Jetzt soll der Methodenaufruf zusammengebaut werden:
string strMethodenAufruf;
strMethodenAufruf = str + zahl;
Wie kann ich C# dazu überreden, den String strMethodenAufruf als
Methodenaufruf InitSystem2(); zu interpretieren?
Gibt es eine einfache Ersetzung in C#?



Da wàre zwar normal z.B. eine parametrierte Methode
besser, aber gehen würde das etwa so:


private void Form1_Load(object sender, EventArgs e)
{
for (int i=1; i<=3; i++) Aufruf("InitSystem", i);
}

void Aufruf(string memberName, int nr)
{
BindingFlags bf = BindingFlags.InvokeMethod | BindingFlags.
NonPublic | BindingFlags.Instance;
GetType().InvokeMember(memberName + nr.ToString(), bf,null,this,null);
}

void InitSystem1() { MessageBox.Show("InitSystem1"); }
void InitSystem2() { MessageBox.Show("InitSystem2"); }
void InitSystem3() { MessageBox.Show("InitSystem3"); }


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen