Contract Třída

Definice

Obsahuje statické metody pro reprezentaci programových kontraktů, jako jsou předpoklady, postconditions a invarianty objektů.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Dědičnost
Contract

Poznámky

Třídy kontraktů kódu umožňují zadat v kódu předpoklady, postconditions a invarianty objektů. Předpoklady jsou požadavky, které musí být splněny při zadávání metody nebo vlastnosti. Postconditions popisují očekávání v době, kdy metoda nebo kód vlastnosti skončí. Invarianty objektů popisují očekávaný stav třídy, která nemá žádné problémy s podmínkou. Další informace o předpokladech, postconditions a invariantech objektů naleznete v tématu Kontrakty kódu.

Nástroje a podrobné pokyny k používání kontraktů kódu najdete v tématu Code Contracts na Visual Studio Marketplace.

Important

K vložení vynucení kontraktů za běhu musíte použít binární rewriter. V opačném případě je možné kontrakty, jako Contract.Ensures je metoda, testovat pouze staticky a nevyvolají výjimky během doby běhu, pokud dojde k porušení smlouvy. Binární rewriter CCRewrite si můžete stáhnout z Code Contracts na Visual Studio Marketplace. CcRewrite se dodává s doplňkem Visual Studio, který umožňuje aktivovat vynucení kontraktů za běhu z projektu Properties stránky. Binární přepis a doplněk Visual Studio se nedoručují s Visual Studio 2010 ani se sadou WINDOWS SDK.

Metody

Name Description
Assert(Boolean, String)

Kontroluje podmínku; pokud je falsepodmínka nastavena analyzátorem, postupujte podle zásad eskalace a zobrazí zadanou zprávu.

Assert(Boolean)

Kontroluje podmínku; pokud je falsepodmínka nastavena, postupujte podle zásad eskalace pro analyzátor.

Assume(Boolean, String)

Dává nástrojům pro analýzu kódu pokyn, aby předpokládal, že podmínka je true, i když se nedá staticky prokázat, že je vždy trueověřená , a zobrazí zprávu, pokud se předpoklad nezdaří.

Assume(Boolean)

Dává nástroji pro analýzu kódu pokyn, aby předpokládal, že zadaná podmínka je true, i když nelze staticky prokázat, že vždy true.

EndContractBlock()

Označí konec oddílu smlouvy, pokud kontrakty metody obsahují pouze předběžné podmínky ve formulářiif-then-throw.

Ensures(Boolean, String)

Určuje smlouvu postcondition pro zadanou výstupní podmínku a zprávu, která se má zobrazit, pokud je falsepodmínka .

Ensures(Boolean)

Určuje kontrakt postcondition pro ohraničující metodu nebo vlastnost.

EnsuresOnThrow<TException>(Boolean, String)

Určuje postcondition kontrakt a zprávu, která se má zobrazit, pokud je false podmínka pro uzavřenou metodu nebo vlastnost na základě poskytnuté výjimky a podmínky.

EnsuresOnThrow<TException>(Boolean)

Určuje kontrakt postcondition pro ohraničující metodu nebo vlastnost na základě poskytnuté výjimky a podmínky.

Exists(Int32, Int32, Predicate<Int32>)

Určuje, zda je zadaný test pravdivý pro libovolné celé číslo v rozsahu celých čísel.

Exists<T>(IEnumerable<T>, Predicate<T>)

Určuje, zda prvek v kolekci prvků existuje v rámci funkce.

ForAll(Int32, Int32, Predicate<Int32>)

Určuje, zda je určitá podmínka platná pro všechna celá čísla v zadaném rozsahu.

ForAll<T>(IEnumerable<T>, Predicate<T>)

Určuje, zda všechny prvky v kolekci existují v rámci funkce.

Invariant(Boolean, String)

Určuje invariantní kontrakt pro uzavřenou metodu nebo vlastnost a zobrazí zprávu, pokud podmínka kontraktu selže.

Invariant(Boolean)

Určuje invariantní kontrakt pro uzavřenou metodu nebo vlastnost.

OldValue<T>(T)

Představuje hodnoty tak, jak byly na začátku metody nebo vlastnosti.

Requires(Boolean, String)

Určuje předběžnou smlouvu pro ohraničující metodu nebo vlastnost a zobrazí zprávu, pokud podmínka pro smlouvu selže.

Requires(Boolean)

Určuje předběžnou smlouvu pro ohraničující metodu nebo vlastnost.

Requires<TException>(Boolean, String)

Určuje předběžnou smlouvu pro ohraničující metodu nebo vlastnost a vyvolá výjimku se zadanou zprávou, pokud podmínka pro kontrakt selže.

Requires<TException>(Boolean)

Určuje předběžnou smlouvu pro ohraničující metodu nebo vlastnost a vyvolá výjimku, pokud podmínka pro kontrakt selže.

Result<T>()

Představuje návratovou hodnotu metody nebo vlastnosti.

ValueAtReturn<T>(T)

Představuje konečnou (výstupní) hodnotu parametru out při vrácení z metody.

Událost

Name Description
ContractFailed

Nastane, když kontrakt selže.

Platí pro