Code Contracts machen die Validierung leicht und sorgfältig

Mit Code Contracts kann man all dieses mühselige Schreiben von Code auslassen und stattdessen etwas viel Einfacheres verwenden. Code Contracts definiert eine statische Klasse namens „Contract“, die zwei statische Methoden zur Validierung von Eingaben und Ausgaben mitbringt: Contract.Requires() und Contract.Ensures(). Beide sollten ganz am Anfang der Methode platziert werden, und beide erwarten konditionale Ausdrücke als Eingabeparameter.

Es gibt einige Einschränkungen, welche Methoden man innerhalb dieser Aufrufe verwenden darf, sowie einige spezielle Details hinsichtlich Schleifen und Collections. Das Code Contracts User Manual (das erstaunlich gut geschrieben ist, wenn man den Status dieses Projekts bedenkt) liefert hierzu alle Einzelheiten. Optional kann man an Contract.Requires() und Contract.Ensures() auch Text übergeben, der als Fehlermeldung verwendet wird.

Beispielcode C zeigt die gesamte Eingabe- und Ausgabevalidierung von Beispielcode A und Beispielcode B in Kombination.

Beispielcode C



Dieser Code ist wesentlich klarer und kompakter. Und er ist sofort als Validierungscode erkennbar.

Für das Problem, den Objektstatus zu validieren, ermöglicht Code Contracts das Erstellen einer Methode, der man das Attribut [ContractInvariantMethod] hinzufügt. Die Methode darf nur Aufrufe von Contract.Invariant() enthalten, die ebenfalls konditionale Ausdrücke zulässt. Sobald dies erledigt ist, wird der Code in der Methode verwendet, um das Objekt am Ende jedes Aufrufs einer seiner Methoden zu validieren.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Code Contracts machen die Validierung leicht und sorgfältig

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *