Frage

In VB.NET, die besser zu bedienen ist: Funktion Überlastung oder Standardparameter

War es hilfreich?

Lösung

Wird der Code von anderen Sprachen verwendet werden? Wenn ja, das schwingt das Gleichgewicht in Richtung Überlastungen während noch Hamish Antwort zu berücksichtigen. Insbesondere ist C # nicht optionale Parameter unterstützen - noch ...

Allerdings wäre dies nicht wirklich verhindern, dass jemand den Code von C #, es könnte nur ein Schmerz für sie sein.

Wenn es eine Menge von Parametern ist und sie logisch etwas darstellen, könnte man sie zusammen prüfen will einkapseln, in der gleichen Art und Weise, die Arbeiten mit Process ProcessStartInfo. Das ist besonders schön, von C # durch initializers zu widersprechen.

Wenn dies für den Bau ist, könnten Sie auch die Erbauer Muster als eine Variante dieses in Betracht ziehen. Zum Beispiel in Protocol Buffers kann ich so etwas wie:

Person jon = new Person.Builder { Name="Jon", Age=32,
                                  Spouse="Holly", Kids=3 }.Build();

, die sehr gut lesbar endet als während immer noch eine Person in einem Rutsch zu schaffen (in einem Ausdruck, und ohne die Person zu mutieren, die sich - in der Tat des Nachrichtentyp ist unveränderlich, es ist nur der Bauherr, die nicht ist).

Andere Tipps

, wenn die Parameter optional sind (das heißt, die Überlastungen sind eine Teilmenge der Parameter, die die gesamte Prozedur Unterschrift akzeptiert), dann standardmäßig oder optional Parameter würde mehr Sinn machen.

Wenn die Überlast für den Parameter eine andere Art ermöglichen oder ein semantisch verschiedenen Parameter, die unterschiedlich von der Routine interpretiert werden dann würden Überlastungen mehr Sinn machen.

Zu Ihrer Information

Wenn Sie einen Parameter eine Funktion oder Methode hinzuzufügen, die von anderen Baugruppen aufgerufen wird, dann:

Sie können die Überlastung durch eine zusätzliche Funktion mit dem zusätzlichen Parameter zu machen.

Sie können auch einen optionalen Parameter hinzufügen, aber: Sie haben alle Baugruppen neu zu kompilieren, die diese Funktion aufrufen, auch wenn sie nicht den neuen optionalen Parameter verwenden müssen! Dies ist in der Regel nicht, was die Leute erwarten (besonders diejenigen verwendet, wie VB6 funktioniert). Grundsätzlich können Sie nicht auf eine Funktion in einem neuen optionalen Parameter rutschen und erwarten, dass es völlig rückwärtskompatibel sein. Auch, wie ich es verstehe, wenn Sie ändern, was der Standardwert ist, müssen Sie alle Aufruf Baugruppen für die Änderung der Arbeit neu zu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top