ich stehe vor folgendem Problem:
Mir sind zwei Methoden gegeben, die eine Zahl zurückgeben und identische Parameter annehmen.
private static int Preis1(string element)
{
int preis = 0;
//Berechnugen Typ 1
return preis ;
}
private static int Preis2(string element)
{
int preis = 0;
//Berechnugen Typ 2
return preis ;
}
Diese beiden Methoden möchte/soll ich nicht ändern.
Nun habe ich eine sehr komplexe Methode geschrieben, in der die erste der beiden oben genannten Methoden Verwendung findet.
private void gesamtPreisAusrechnen()
{
int gespreis = 0;
//Berechnungen ...
gespreis += Preis1("produkt a");
//Berechnungen ...
gespreis += Preis1("produkt b");
//usw.
}
Die ganze Gesamtberechnung müsste ich auch noch mal mit den Werten von Preis 2 machen.
Ich möchte aber ungerne den ganzen Code doppelt kopieren oder bei jedem Aufruf von Preis1 in gesamtPreisAusrechnen eine if-else-Abfrage machen.
Mit kam folgende Idee, jedoch weiß ich nicht, wie ich das umsetzen kann oder ob man sowas überhaupt in die Richtung umsetzen kann.
private void gesamtPreisAusrechnen(bool preis2Verwenden)
{
private voidhalter preisMethode = null;
if (preis2Verwenden)
{
preisMethode = Preis2;
}
else
{
preisMethode = Preis1;
}
int gespreis = 0;
//Berechnungen ...
gespreis += preisMethode("produkt a");
//Berechnungen ...
gespreis += preisMethode("produkt b");
//usw.
}
EDIT: Gibt es eine Art Platzhalter für Methoden mit dem selben Parameter?
Viele Grüße,
Raffi