Ich habe mehrere ähnliche Methoden, z.B. CalculatePoint(...) und CalculateListOfPoints(...). Gelegentlich kann es vorkommen, dass sie nicht erfolgreich sind, und dies muss dem Aufrufer angezeigt werden. Für CalculateListOfPoints, das eine generische Liste zurückgibt, könnte ich eine leere Liste zurückgeben und den Aufrufer auffordern, dies zu überprüfen; Point ist jedoch ein Werttyp und daher kann ich dort nicht null zurückgeben.
Im Idealfall möchte ich, dass die Methoden ähnlich "aussehen"; eine Lösung könnte darin bestehen, sie als
public Point CalculatePoint(... out Boolean boSuccess);
public List<Point> CalculateListOfPoints(... out Boolean boSuccess);
oder alternativ einen Punkt? für CalculatePoint zurückgeben, und null zurückgeben, um einen Fehler anzuzeigen. Das würde bedeuten, dass man zurück zum nicht-nullbaren Typ casten muss, was übertrieben erscheint.
Eine andere Möglichkeit wäre, den Boolean boSuccess zurückzugeben, das Ergebnis (Punkt oder Liste) als 'out'-Parameter zu haben und sie TryToCalculatePoint oder so zu nennen...
Was ist die beste Praxis?
Bearbeiten: Ich möchte keine Ausnahmen für die Flusskontrolle verwenden! Ein Fehlschlag wird manchmal erwartet.