functions gleichsetzen?

05/01/2009 - 13:38 von TM XIII | Report spam
hallo allerseits,
schon wieder mal habe ich eine frage:

es geht doch bestimmt auch in C#, daß functionszeiger gleichgesetzt werden
können?! wie mache ich das?
bringt bestimmt performance bei 'n paar tausend berechnungen...

danke für antwort & grüße
Martin
 

Lesen sie die antworten

#1 Frank Dzaebel
05/01/2009 - 14:33 | Warnen spam
Hallo Martin,

wir benutzen hier gerne den vollen Vor- und Zunamen als Usernamen.

es geht doch bestimmt auch in C#, daß functionszeiger gleichgesetzt
werden können?! wie mache ich das?
bringt bestimmt performance bei 'n paar tausend berechnungen...



In folgendem Beispiel kannst Du "methodenReferenz" als
einen Zeiger auf eine Methode ansehen. (Reine Zeiger kommen
sonst höchstens im unsafe Kontext bei C# vor). Wenn andere
Methoden auch die "MeinMethodenDelegate"-Signatur
haben, können sie auch der "methodenReferenz"-Variable
zugewiesen werden:

public delegate string MeinMethodenDelegate(int meinInt);
MeinMethodenDelegate methodenReferenz;

private void Form1_Load(object sender, EventArgs e)
{
methodenReferenz = new MeinMethodenDelegate(MeineMethode);
MessageBox.Show(methodenReferenz(42));
MessageBox.Show(methodenReferenz(-2));
}

public string MeineMethode(int i)
{
return i.ToString() + (i>0 ? ":positiv" : ":negativ");
}

Weiterführende Informationen und Beispiele u.a. hier:

[Delegate-Klasse (System)]
http://msdn.microsoft.com/de-de/lib...egate.aspx


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

Ähnliche fragen