Action Delegat - Was ist das?
Mit dieser Funktion können Methoden gekapselt werden.
Diese sind dann über einen einzelnen Parameter verfügbar, aber haben keinen Rückgabewert.
Grundsätzliche Implementierungsstruktur in C#
Parameter
obj - Der Parameter der Methode, die dieser Delegat kapselt.
Typparameter
T - Der Typ des Parameters der Methode, die dieser Delegat kapselt.
public delegate void Action<in T>(T obj)
Anwendungsbeispiel
Das Anwendungsbeispiel zeigt eine Methode, welche zwei Anweisungen enthält.
Dort wird entschieden, wenn Wert A oder B ungleich 0 sind, wird eine spezifische Methode aufgerufen.
Dieser Methodenaufruf ist in einer Action-Funktion gekapselt.
public void Rechnen(object obj)
{
if (WertA != 0) Berechnen(_wertA, new Action(BerechnenA));
if (WertB != 0) Berechnen(_wertB, new Action(BerechnenB));
}
Beide Anweisungen rufen die Methode Berechnen auf.
Diese Methode übergibt den Methodenzeiger berechne() den Wert zur Berechnung
public void Berechnen(double wert, Action berechne)
{
berechne(wert);
}
So können beide Berechnungsmethoden über einen Aufruf bedient werden.
Natürlich kann man diese Problemstellung leichter lösen, aber wir wollten ein Anwendungsbeispiel für die Action-Funktion aufzeigen.
private void BerechnenA(double wert)
{
...
}
private void BerechnenB(double wert)
{
...
}