Ich habe gerade diesen Code geschrieben:
%Vor%Es scheint sehr sich wiederholend. Gibt es eine Möglichkeit, dies zu verallgemeinern? Also muss ich nicht 4 Zeilen haben, die die gleichen sind, außer ein anderes Zeichen?
(Hinweis: Wenn es einen besseren Weg gibt, der OperationEnum
nicht nutzt, ist das großartig)
Es sieht für mich richtig aus, obwohl ich dafür eine switch
-Anweisung verwenden würde. Aber vielleicht verstehe ich nicht, was Sie versuchen zu tun?
Es ist im Wesentlichen das Gleiche, aber es sieht zumindest hübscher aus.
Ja, mit List<Func<double, double, double>>
:
List<T>
accessor arbeitet viel schneller als Dictionary & lt; & gt; Accessor und vergleichbar mit Switch-Anweisung;)
Ein Schalter wäre mindestens hübscher :) und der Code wird effizienter (Array-Lookups etc.). Darüber hinaus können der Compiler und die IDE Ihnen Hinweise geben, wenn Sie bestimmte Optionen verpassen.
Aber wie in meinem Kommentar gesagt, ist dies nicht wirklich eine Antwort, nur allgemeine Verbesserung des Codes.
%Vor%Dies sollte es tun, aber ich glaube, eine switch-Anweisung wäre die effizientere.
%Vor%ODER
%Vor%Dann ...
%Vor%Ich bin mir nicht sicher über den Kontext, aber anstatt der Enumeration könnten Sie einen Delegaten verwenden, der die gewünschte Operation ausführt, die in Ihre "PerformOperation" -Methode übernommen wird. Allerdings benötigen Sie diese statische Methode wahrscheinlich nicht, wenn Sie diesen Ansatz verwenden würden. Ein weiterer Vorteil ist, dass Sie sich nicht um den speziellen Fall kümmern müssen, in dem der Vorgang nicht unterstützt wird, und jeder Vorgang unterstützt wird. Hier ist ein kurzes Beispiel:
%Vor%Mit diesem Ansatz können Sie Ihr Programm problemlos um neue Operationen erweitern, ohne die PerformOperation-Methode zu berühren. Dies kann einige Schritte weiter gehen, aber ohne den Kontext zu kennen, ist es schwer zu beschreiben.
Tags und Links c#