Guten Morgen! Ich schreibe eine Klasse zum Zeichnen von Histogrammen, und aus Gründen der Benutzerfreundlichkeit habe ich beschlossen, einige Conventions hinzuzufügen.
Sobald ich jedoch kürzlich auf .NET-Code-Verträge von DevLabs umgestiegen bin, möchte ich die Vorbedingungen für den Schutz gegen meine eigene Dummheit (oder jemandes) voll ausnutzen.
%Vor% Es gibt etwas, das mich verwirrt. Ich möchte nicht, dass der erste Konstrukteur den zweiten Konstruktor anruft, wenn der Vertrag gebrochen ist. Es wird jedoch angenommen, dass ein Aufruf von this(...)
ausgeführt wird, bevor der Rumpf des ersten Konstruktors ausgeführt wird.
Funktioniert dieser Code wie ich will? Ich habe es noch nicht versucht. Und wenn nicht, gibt es eine Fähigkeit, ein solches Problem zu lösen?
Und wenn nicht, gibt es eine Fähigkeit von ein solches Problem lösen?
Da der Konstruktorhauptteil nur ausgeführt wird nachdem den anderen Konstruktor aufgerufen hat, glaube ich nicht, dass Ihr aktueller Ansatz funktionieren kann. Ich würde empfehlen, den gemeinsamen Code in eine separate Methode herauszufiltern, d. H.% Co_de%, die Sie dann von beiden Konstruktoren aufrufen können, die Ihren Code DRY behalten und Ihr Problem lösen würde:
%Vor%Tags und Links .net c# constructor code-contracts