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 Visual Studio, który umożliwia aktywowanie wymuszania kontraktu czasu wykonywania na stronie Właściwości projektu. Maszyna binarna i dodatek Visual Studio nie są dostarczane z Visual Studio 2010 r. ani zestawem SDK Windows.

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 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 nie powiedzie się.

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 otaczającej metody lub właściwości.

Requires(Boolean, String)

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

Requires<TException>(Boolean)

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

Requires<TException>(Boolean, String)

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

Result<T>()

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

ValueAtReturn<T>(T)

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

Zdarzenia

ContractFailed

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

Dotyczy