Ich war zu aufgeregt, als Objektinitialisierer in C# erschien.C# Objektinitialisierer Komplexität. Best Practice
MyClass a = new MyClass();
a.Field1 = Value1;
a.Field2 = Value2;
kürzer neu geschrieben werden:
MyClass a = new MyClass { Field1 = Value1, Field2 = Value2 }
Objektinitialisierer Code offensichtlicher, aber wenn Eigenschaften Dutzend kommen Nummer und einige der Zuordnung beschäftigt sich mit Nullable-Werte ist es schwer zu debuggen, wo die „NULL-Verweis Fehler "ist. Studio zeigt den gesamten Objektinitialisierer als Fehlerpunkt an.
Heutzutage verwende ich Objektinitialisierer für einfache Zuordnung nur für fehlerfreie Eigenschaften.
Wie verwenden Sie Objektinitialisierer für die komplexe Zuweisung oder es ist eine schlechte Übung, Dutzende von Aufgaben überhaupt zu verwenden?
Vielen Dank im Voraus!
Normalerweise habe ich solchen Code bei Geschäftsobjekten. Eigenschaften werden von der Benutzeroberfläche aus ausgefüllt oder stammen aus verschiedenen Tabellen. –
Ich mag Objektinitialisierungen in einem DAO nicht, weil Sie das Feld normalerweise von einem Lesegerät erhalten und es oft zu Problemen kommen kann. Sie erhalten keine Compiler-Sicherheit. In diesem Fall kann man sich mit einem Komponententest nicht wirklich schützen, weil es zu einem Integrationstest wird. Entitäten außerhalb der DB haben typischerweise ein paar mit ihnen assoziierte Felder. Wenn die Zuweisungen jedoch trivial sind, verwende ich einen Objektinitialisierer. – uriDium