eine Sache zum Nachdenken ist dies. Wenn Sie sehen,
ErrorMessage(true, false, true, false);
im Code 2 Jahre von jetzt an. Was heißt das? Auch hast du die Flaggen in der richtigen Reihenfolge bekommen. Obwohl es langatmiger ist vielleicht
ist klarer. (Ja, ich weiß, Sie 16 Methoden für alle Kombinationen benötigen würden oder 4 flags - aber vielleicht gibt es gemeinsam diejenigen genannt geführt werden, und reduziere die Anzahl der Flags)
Eine weitere Idee ist es, die bools von Aufzählungen ersetzen
ErrorMessage(IsError.True, EmptyAcc.False,..);
Jetzt können Sie sehen, was sie bedeuten und der Compiler wird sicherstellen, dass Sie die richtigen Dinge
oder un-glücklich Vorschlag des Leitens eines Parameterblocks von einer Art
ErrorMessage(new ErrorControl{IsEmpty=true});
passieren
Beachten Sie, dass viele Personen (einschließlich mir) auf Standard-Arg-Werten im Gegensatz zu Überladungen setzen. Warum? Weil, wenn Sie das Standardverhalten ändern möchten, müssen Sie die Anrufer neu kompilieren, vielleicht kein Problem für Sie, aber im Allgemeinen macht Kapselung ein wenig schwächer (Gleicher Grund, warum Sie öffentliche erhalten sollten; set; Accessoren statt nackten öffentlichen Felder)
Hast du [sehen?] (Https://msdn.microsoft.com/en-us/library/dd264739.aspx) – TaW
Off-Topic für SO (denke ich) aber einige Überlegungen: wie oft Sie weglassen diese Parameter?Wenn Sie die Standardeinstellungen häufiger verwenden, dann sollten Sie sie verwenden (mit all ihren Nachteilen, ignorieren Sie sie nicht). Zweite Überlegungen: Solche booleschen Parameter Chaos sollte noch mehr vermieden werden. Verwenden Sie (mindestens) Enumerationsflags oder erzwingen Sie die Verwendung benannter Parameter, der Aufrufpunkt ist absolut obskur. –
Ich benutze die Standardwerte öfter als ich nicht, aber jeder bool hat eine andere if-Bedingung. –