Sdílet prostřednictvím


Contract Třída

Definice

Obsahuje statické metody pro reprezentaci kontraktů programu, jako jsou předběžné podmínky, podmínky 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í v kódu určit předběžné podmínky, podmínky a invarianty objektů. Předběžné podmínky 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ě ukončení metody nebo kódu vlastnosti. Invarianty objektu popisují očekávaný stav pro třídu, která nemá žádné problémy s podmínkou. Další informace o předběžných podmínkách, postpodmínkách a invariantech objektů najdete v tématu Kontrakty kódu.

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

Důležité

K vložení vynucování kontraktů za běhu je nutné použít binární přepis. V opačném případě mohou být kontrakty, jako Contract.Ensures je metoda, testovány pouze staticky a nevyvolají výjimky během doby běhu, pokud je kontrakt porušen. Binární text CCRewrite si můžete stáhnout z části Code Contracts na Visual Studio Marketplace. CCRewrite se dodává s doplňkem sady Visual Studio, který umožňuje aktivovat vynucení smlouvy za běhu ze stránky Vlastnosti projektu. Binární přepis a doplněk sady Visual Studio nejsou dodávány se sadou Visual Studio 2010 nebo Windows SDK.

Metody

Assert(Boolean)

Kontroluje podmínku; Pokud je falsepodmínka , řídí se zásadami eskalace nastavenými pro analyzátor.

Assert(Boolean, String)

Kontroluje podmínku; Pokud je falsepodmínka , řídí se zásadami eskalace nastavenými analyzátorem a zobrazí zadanou zprávu.

Assume(Boolean)

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

Assume(Boolean, String)

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

EndContractBlock()

Označuje konec oddílu smlouvy, pokud kontrakty metody obsahují ve formuláři if--thenthrow pouze předběžné podmínky.

Ensures(Boolean)

Určuje smlouvu postcondition pro metodu uzavření nebo vlastnost.

Ensures(Boolean, String)

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

EnsuresOnThrow<TException>(Boolean)

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

EnsuresOnThrow<TException>(Boolean, String)

Určuje kontrakt po podmínce a zprávu, která se má zobrazit, pokud je false podmínka určena pro ohraničující metodu nebo vlastnost na základě poskytnuté výjimky a podmínky.

Exists(Int32, Int32, Predicate<Int32>)

Určuje, zda zadaný test má hodnotu true pro jakékoli celé číslo v rozsahu celých čísel.

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

Určuje, zda prvek v rámci kolekce elementů existuje ve funkci.

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)

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

Invariant(Boolean, String)

Určuje invariantní kontrakt pro ohraničující metodu nebo vlastnost a zobrazí zprávu, pokud podmínka pro kontrakt selže.

OldValue<T>(T)

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

Requires(Boolean)

Určuje kontrakt předběžné podmínky pro uzavírací metodu nebo vlastnost.

Requires(Boolean, String)

Určuje smlouvu předběžné podmínky pro nadřazenou metodu nebo vlastnost a zobrazí zprávu, pokud podmínka kontraktu selže.

Requires<TException>(Boolean)

Určuje předběžný kontrakt pro uzavírací metodu nebo vlastnost a vyvolá výjimku, pokud podmínka pro kontrakt selže.

Requires<TException>(Boolean, String)

Určuje předběžný kontrakt pro nadřazenou metodu nebo vlastnost a vyvolá výjimku se zadanou zprávou, 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 návratu z metody.

Událost

ContractFailed

Vyvolá se při selhání kontraktu.

Platí pro