Wie bringt Contract.Exists Mehrwert?

9

Ich fange gerade an, über die Codevertragsbibliothek zu lernen, die mit VS2010 standardmäßig kommt. Eine Sache, auf die ich sofort stoße, ist, was einige der Vertragsklauseln wirklich bedeuten.

Zum Beispiel, wie unterscheiden sich diese beiden Aussagen?

%Vor%

Mit anderen Worten, was macht Contract.Exists in der Praxis, entweder für einen Entwickler, der meine Funktion verwendet, oder für das statische Code-Analysesystem?

    
scobi 06.05.2010, 21:45
quelle

2 Antworten

1

Ok, ich habe die Antwort gefunden. Gemäß dem Code Contracts Benutzerhandbuch, Abschnitt 2.7.2:

"Es ist auch möglich, anstelle von Contract.Exists die Erweiterungsmethode System.Linq.Enumerable.Any zu verwenden."

Sie sind also gleichwertig. Ich werde Any anstelle von Exists verwenden, damit es mit dem Rest unseres Codes konsistent ist.

    
scobi 07.05.2010, 16:41
quelle
4

Die Version, die Contract.Exists verwendet, wird aufgrund ihrer deklarativen Natur bevorzugt. Ein weiterer Vorteil ist, dass der Rahmen diesen Vertrag kennt und eine bessere Chance hat, in der statischen Analyse "gefangen" zu werden.

    
Elisha 06.05.2010 22:04
quelle

Tags und Links