Contract Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 |
Assert(Boolean, String) |
Kontroluje podmínku; Pokud je |
Assume(Boolean) |
Dává nástrojům pro analýzu kódu pokyn, aby předpokládaly, že zadaná podmínka je |
Assume(Boolean, String) |
Dává nástrojům pro analýzu kódu pokyn, aby předpokládaly, že podmínka je |
EndContractBlock() |
Označuje konec oddílu smlouvy, pokud kontrakty metody obsahují ve formuláři |
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 |
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 |
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 |
Událost
ContractFailed |
Vyvolá se při selhání kontraktu. |