Contract Klasa

Definicja

Zawiera metody statyczne reprezentujące kontrakty programu, takie jak warunki wstępne, terminy końcowe i niezmienne obiekty.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Dziedziczenie
Contract

Uwagi

Klasy kontraktów kodu umożliwiają określenie warunków wstępnych, pokondycji i niezmiennych obiektów w kodzie. Warunki wstępne są wymaganiami, które należy spełnić podczas wprowadzania metody lub właściwości. Postconditions opisują oczekiwania w czasie zakończenia metody lub kodu właściwości. Niezmienne obiekty opisują oczekiwany stan klasy, która nie ma problemów z warunkiem. Aby uzyskać więcej informacji na temat warunków wstępnych, pokondycji i niezmiennych obiektów, zobacz Code Contracts (Kontrakty kodu).

Aby uzyskać narzędzia i szczegółowe instrukcje dotyczące korzystania z kontraktów kodu, zobacz Code Contracts on the Visual Studio Marketplace ( Kontrakty kodu w witrynie Visual Studio Marketplace).

Ważne

Aby wstawić wymuszanie kontraktów w czasie wykonywania, musisz użyć binarnego ponownego tworzenia maszyny. W przeciwnym razie kontrakty, takie jak Contract.Ensures metoda, mogą być testowane statycznie i nie będą zgłaszać wyjątków w czasie wykonywania, jeśli kontrakt zostanie naruszony. Plik CCRewrite można pobrać z witryny Code Contracts w witrynie Visual Studio Marketplace. Aplikacja CCRewrite jest dostarczana z dodatkiem programu Visual Studio, który umożliwia aktywowanie wymuszania kontraktu czasu wykonywania ze strony Właściwości projektu. Binarny rewriter i dodatek programu Visual Studio nie są dostarczane z programem Visual Studio 2010 ani Windows SDK.

Metody

Assert(Boolean)

Sprawdza warunek; jeśli warunek to false, jest zgodny z zasadami eskalacji ustawionymi dla analizatora.

Assert(Boolean, String)

Sprawdza warunek; jeśli warunek to false, następuje zgodnie z zasadami eskalacji ustawionymi przez analizator i wyświetla określony komunikat.

Assume(Boolean)

Instruuje narzędzia do analizy kodu, aby założyć, że określony warunek to true, nawet jeśli nie można go statycznie udowodnić, że zawsze jest to true.

Assume(Boolean, String)

Instruuje narzędzia do analizy kodu, aby zakładały, że warunek to true, nawet jeśli nie można go statycznie udowodnić, że zawsze ma wartość true, i wyświetla komunikat, jeśli założenie zakończy się niepowodzeniem.

EndContractBlock()

Oznacza koniec sekcji kontraktu, gdy kontrakty metody zawierają tylko warunki wstępne w formularzuifthrow-then-.

Ensures(Boolean)

Określa kontrakt pokondycji dla otaczającej metody lub właściwości.

Ensures(Boolean, String)

Określa kontrakt postcondition dla podanego warunku zakończenia i komunikat do wyświetlenia, jeśli warunek to false.

EnsuresOnThrow<TException>(Boolean)

Określa kontrakt postcondition dla otaczającej metody lub właściwości na podstawie podanego wyjątku i warunku.

EnsuresOnThrow<TException>(Boolean, String)

Określa kontrakt pokondycji i komunikat do wyświetlenia, jeśli warunek jest false dla otaczającej metody lub właściwości, na podstawie podanego wyjątku i warunku.

Exists(Int32, Int32, Predicate<Int32>)

Określa, czy określony test ma wartość true dla dowolnej liczby całkowitej w zakresie liczb całkowitych.

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

Określa, czy element w kolekcji elementów istnieje w ramach funkcji.

ForAll(Int32, Int32, Predicate<Int32>)

Określa, czy określony warunek jest prawidłowy dla wszystkich liczb całkowitych w określonym zakresie.

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

Określa, czy wszystkie elementy w kolekcji istnieją w ramach funkcji.

Invariant(Boolean)

Określa niezmienny kontrakt dla otaczającej metody lub właściwości.

Invariant(Boolean, String)

Określa niezmienny kontrakt dla otaczającej metody lub właściwości i wyświetla komunikat, jeśli warunek kontraktu zakończy się niepowodzeniem.

OldValue<T>(T)

Reprezentuje wartości, które znajdowały się na początku metody lub właściwości.

Requires(Boolean)

Określa warunek wstępny dla metody lub właściwości otaczającej.

Requires(Boolean, String)

Określa warunek wstępny dla metody lub właściwości otaczającej i wyświetla komunikat, jeśli warunek kontraktu zakończy się niepowodzeniem.

Requires<TException>(Boolean)

Określa warunek wstępny dla metody lub właściwości otaczającej i zgłasza wyjątek, jeśli warunek kontraktu zakończy się niepowodzeniem.

Requires<TException>(Boolean, String)

Określa warunek wstępny dla metody lub właściwości otaczającej i zgłasza wyjątek z podanym komunikatem, jeśli warunek kontraktu zakończy się niepowodzeniem.

Result<T>()

Reprezentuje wartość zwracaną metody lub właściwości.

ValueAtReturn<T>(T)

Reprezentuje ostateczną (wyjściową) wartość parametru out podczas powrotu z metody.

Zdarzenia

ContractFailed

Występuje, gdy kontrakt kończy się niepowodzeniem.

Dotyczy