c# Optionale Parameter Func

In C# habe ich folgende definition einer Funktion:

public static TResult SomeParentFunctionName<TSource, TResult>(TSource SomeValue,Func<TSource, TResult> ChildFunction1, Func<TSource, TResult> ChildFunction2)

Diese Funktion nimmt SomeValue und ruft dann ChildFunction1 und ChildFunction2

Laut meinem business-Regeln, ich immer ausführen müssen ChildFunction1, aber nur manchmal ausführen müssen ChildFunction2.

Kann ich machen ChildFunction2 einen optionalen parameter? Wie kann ich dies tun? Und wie weiß ich, wenn es wurde übergeben.

Optionen habe ich überlegt:

1) ich konnte erzeugen zwei SomeParentFunctionName Funktionen, mit ChildFunction2 und eine ohne.

2) konnte ich-pass-in eine leere Funktion, die einfach nicht alles tun - aber das ist keine gute Praxis.


Hinweis: für diejenigen, die beginnen zu Schreien auf diese Frage, wenn Sie können nicht helfen, einfach nicht.

  • Was bestimmt, Wann Sie ausgeführt werden müssen ChildFunction2? Wissen Sie, Sie haben, um es auszuführen, bevor der Anruf zu SomeParentFunctionName? Weil wenn ja, ich würde sagen, eine überlastung ist wahrscheinlich der direkteste Weg zu gehen.
  • Der Benutzer, der den Aufruf SomeParentFunctionName schon weiß, ob ChildFunction2 aufgerufen werden. Recht. Das ist eine meiner überlegungen. Können Sie denken, von einem anderen Weg, es zu tun?
  • Sie könnte pass in null (das habe ich noch nie gemocht) oder verwenden Sie ein optional parameter und setzen Sie es auf null, das ist sauberer.
Schreibe einen Kommentar