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.
Der Sicherheitscheck entzieht unsicheren Websites automatisch alle Berechtigungen. Zudem können Nutzer in Chrome künftig Websites…
Ontinue registriert einen Anstieg beim Anteil am Gesamtangriffsvolumen um 105 Prozent. Das Angriffsvolumen auf den…
Das o1 genannte Modell liegt als Preview vor. Bei einer Mathematikprüfung beantwortet es 83 Prozent…
Das Kennzeichen erhalten Zoom Workplace Pro und Zoom Workplace Basic. Es bescheinigt unter anderem aktuelle…
iOS und iPadOS erhalten Tab-Gruppen. Zudem unterstützt Chrome nun die Synchronisierung von Tab-Gruppen.
Sie befürchten einen Missbrauch der Identitäten von Verstorbenen. 60 Prozent befürworten deswegen eine Klärung des…