Contract Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 è |
Assert(Boolean, String) |
Controlla una condizione. Se la condizione è |
Assume(Boolean) |
Indica agli strumenti di analisi del codice di presumere che la condizione specificata sia |
Assume(Boolean, String) |
Indica agli strumenti di analisi del codice di presumere che una condizione sia |
EndContractBlock() |
Contrassegna la fine della sezione del contratto quando i contratti di un metodo contengono solo precondizioni nel formato |
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 è |
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 è |
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 |
Eventi
ContractFailed |
Si verifica quando un contratto ha esito negativo. |