Condividi tramite


Contract Classe

Definizione

Contiene metodi statici per la rappresentazione di contratti di programma quali precondizioni, postcondizioni e invarianti dell'oggetto.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Ereditarietà
Contract

Commenti

Le classi del contratto di codice consentono di specificare precondizioni, postcondizioni e invarianti di oggetti nel codice. Le precondizioni sono requisiti da soddisfare quando si accede a un metodo o a una proprietà. Le postcondizioni descrivono le aspettative al momento dell'uscita dal codice del metodo o della proprietà. Le invarianti dell'oggetto descrivono lo stato previsto per una classe che non presenta problemi di condizione. Per altre informazioni su precondizioni, postcondizioni e invarianti di oggetti, vedere Contratti di codice.

Per gli strumenti e le istruzioni dettagliate per l'uso dei contratti di codice, vedere Contratti di codice in Visual Studio Marketplace.

Importante

È necessario usare un rewriter binario per inserire l'imposizione in fase di esecuzione dei contratti. In caso contrario, i contratti come il Contract.Ensures metodo possono essere testati solo in modo statico e non generano eccezioni durante l'esecuzione se viene violato un contratto. È possibile scaricare il rewriter binario CCRewrite da Code Contracts in Visual Studio Marketplace. CCRewrite viene fornito con un componente aggiuntivo di Visual Studio che consente di attivare l'imposizione del contratto di runtime dalla pagina Proprietà del progetto. Il rewriter binario e il componente aggiuntivo di Visual Studio non vengono forniti con Visual Studio 2010 o il Windows SDK.

Metodi

Assert(Boolean)

Controlla una condizione. Se la condizione è false, seguono i criteri di escalation impostati per l'analizzatore.

Assert(Boolean, String)

Controlla una condizione. Se la condizione è false, seguono i criteri di escalation impostati dall'analizzatore e viene visualizzato un messaggio specificato.

Assume(Boolean)

Indica agli strumenti di analisi del codice di presumere che la condizione specificata sia true, anche se non è possibile provare staticamente che sia sempre true.

Assume(Boolean, String)

Indica agli strumenti di analisi del codice di presumere che una condizione sia true, anche se non è possibile provare staticamente che sia sempre true. Viene visualizzato un messaggio se l'ipotesi non riesce.

EndContractBlock()

Contrassegna la fine della sezione del contratto quando i contratti di un metodo contengono solo precondizioni nel formato if-then-throw.

Ensures(Boolean)

Specifica un contratto di postcondizione per il metodo o la proprietà contenitore.

Ensures(Boolean, String)

Specifica un contratto di postcondizione per una condizione di uscita fornita e un messaggio da visualizzare se la condizione è false.

EnsuresOnThrow<TException>(Boolean)

Specifica un contratto di postcondizione per il metodo o la proprietà contenitore in base all'eccezione e alla condizione fornite.

EnsuresOnThrow<TException>(Boolean, String)

Specifica un contratto di postcondizione e un messaggio da visualizzare se la condizione è false per il metodo o la proprietà contenitore in base all'eccezione e alla condizione fornite.

Exists(Int32, Int32, Predicate<Int32>)

Determina se un test specificato è true per qualsiasi Integer all'interno di un intervallo di Integer.

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

Determina se un elemento all'interno di una raccolta di elementi esiste all'interno di una funzione.

ForAll(Int32, Int32, Predicate<Int32>)

Determina se una particolare condizione è valida per tutti gli Integer in un intervallo specificato.

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

Determina se tutti gli elementi all'interno di una raccolta esistono all'interno di una funzione.

Invariant(Boolean)

Specifica un contratto invariante per il metodo o la proprietà contenitore.

Invariant(Boolean, String)

Specifica un contratto invariante per la proprietà o il metodo contenitore e visualizza un messaggio se la condizione per il contratto ha esito negativo.

OldValue<T>(T)

Rappresenta i valori come se fossero all'inizio di un metodo o di una proprietà.

Requires(Boolean)

Specifica un contratto di precondizione per il metodo o la proprietà contenitore.

Requires(Boolean, String)

Specifica un contratto di precondizione per la proprietà o il metodo contenitore e visualizza un messaggio se la condizione per il contratto ha esito negativo.

Requires<TException>(Boolean)

Specifica un contratto di precondizione per la proprietà o il metodo contenitore e genera un'eccezione se la condizione per il contratto ha esito negativo.

Requires<TException>(Boolean, String)

Specifica un contratto di precondizione per la proprietà o il metodo contenitore e genera un'eccezione con il messaggio fornito se la condizione per il contratto ha esito negativo.

Result<T>()

Rappresenta il valore restituito di un metodo o di una proprietà.

ValueAtReturn<T>(T)

Rappresenta il valore finale (output) di un parametro out in caso di restituzione da un metodo.

Eventi

ContractFailed

Si verifica quando un contratto ha esito negativo.

Si applica a