Contract Contract Contract Contract Class

Definizione

Contiene metodi statici per la rappresentazione di contratti di programma quali precondizioni, postcondizioni e invarianti dell'oggetto.Contains static methods for representing program contracts such as preconditions, postconditions, and object invariants.

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

Commenti

Le classi di contratti di codice consentono di specificare precondizioni, postcondizioni e invarianti dell'oggetto nel codice.Code contract classes let you specify preconditions, postconditions, and object invariants in your code. Le precondizioni sono requisiti da soddisfare quando si accede a un metodo o a una proprietà.Preconditions are requirements that must be met when entering a method or property. Le postcondizioni descrivono le aspettative al momento dell'uscita dal codice del metodo o della proprietà.Postconditions describe expectations at the time the method or property code exits. Gli invarianti dell'oggetto descrivono lo stato previsto per una classe che non presenta problemi di condizione.Object invariants describe the expected state for a class that has no condition problems. Per ulteriori informazioni su precondizioni, postcondizioni e invarianti degli oggetti, vedere contratti di codice.For more information about preconditions, postconditions, and object invariants, see Code Contracts.

Per gli strumenti e le istruzioni dettagliate per l'uso dei contratti di codice, vedere Code Contracts(Contratti di codice) nel sito Web MSDN DevLabs.For tools and detailed instructions for using code contracts, see Code Contracts on the MSDN DevLabs Web site.

Importante

È necessario utilizzare un rewriter binario per inserire l'applicazione in fase di esecuzione dei contratti.You must use a binary rewriter to insert run-time enforcement of contracts. In caso contrario, i contratti Contract.Ensures come il metodo possono essere testati solo in modo statico e non generano eccezioni in fase di esecuzione se viene violato un contratto.Otherwise, contracts such as the Contract.Ensures method can only be tested statically and will not throw exceptions during run time if a contract is violated. È possibile scaricare il CCRewrite di rewriter binario da contratti di codice nel sito Web MSDN DevLabs.You can download the binary rewriter CCRewrite from Code Contracts on the MSDN DevLabs Web site. CCRewrite viene fornito con un componente aggiuntivo di Visual Studio che consente di attivare l'applicazione del contratto di run-time dalla pagina delle Proprietà del progetto.CCRewrite comes with a Visual Studio add-in that enables you to activate run-time contract enforcement from the project Properties page. Il rewriter binario e il componente aggiuntivo di Visual Studio non vengono forniti con Visual Studio 2010Visual Studio 2010 o il Windows SDK.The binary rewriter and the Visual Studio add-in do not ship with Visual Studio 2010Visual Studio 2010 or the Windows SDK.

Metodi

Assert(Boolean) Assert(Boolean) Assert(Boolean) Assert(Boolean)

Controlla una condizione. Se la condizione è false, seguono i criteri di escalation impostati per l'analizzatore.Checks for a condition; if the condition is false, follows the escalation policy set for the analyzer.

Assert(Boolean, String) Assert(Boolean, String) Assert(Boolean, String) Assert(Boolean, String)

Controlla una condizione. Se la condizione è false, seguono i criteri di escalation impostati dall'analizzatore e viene visualizzato un messaggio specificato.Checks for a condition; if the condition is false, follows the escalation policy set by the analyzer and displays the specified message.

Assume(Boolean) Assume(Boolean) Assume(Boolean) 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.Instructs code analysis tools to assume that the specified condition is true, even if it cannot be statically proven to always be true.

Assume(Boolean, String) Assume(Boolean, String) Assume(Boolean, String) 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.Instructs code analysis tools to assume that a condition is true, even if it cannot be statically proven to always be true, and displays a message if the assumption fails.

EndContractBlock() EndContractBlock() EndContractBlock() EndContractBlock()

Contrassegna la fine della sezione del contratto quando i contratti di un metodo contengono solo precondizioni nel formato if-then-throw.Marks the end of the contract section when a method's contracts contain only preconditions in the if-then-throw form.

Ensures(Boolean) Ensures(Boolean) Ensures(Boolean) Ensures(Boolean)

Specifica un contratto di postcondizione per il metodo o la proprietà contenitore.Specifies a postcondition contract for the enclosing method or property.

Ensures(Boolean, String) Ensures(Boolean, String) Ensures(Boolean, String) Ensures(Boolean, String)

Specifica un contratto di postcondizione per una condizione di uscita fornita e un messaggio da visualizzare se la condizione è false.Specifies a postcondition contract for a provided exit condition and a message to display if the condition is false.

EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean)

Specifica un contratto di postcondizione per il metodo o la proprietà contenitore in base all'eccezione e alla condizione fornite.Specifies a postcondition contract for the enclosing method or property, based on the provided exception and condition.

EnsuresOnThrow<TException>(Boolean, String) EnsuresOnThrow<TException>(Boolean, String) EnsuresOnThrow<TException>(Boolean, String) 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.Specifies a postcondition contract and a message to display if the condition is false for the enclosing method or property, based on the provided exception and condition.

Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>)

Determina se un test specificato è true per qualsiasi Integer all'interno di un intervallo di Integer.Determines whether a specified test is true for any integer within a range of integers.

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

Determina se un elemento all'interno di una raccolta di elementi esiste all'interno di una funzione.Determines whether an element within a collection of elements exists within a function.

ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>)

Determina se una particolare condizione è valida per tutti gli Integer in un intervallo specificato.Determines whether a particular condition is valid for all integers in a specified range.

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

Determina se tutti gli elementi all'interno di una raccolta esistono all'interno di una funzione.Determines whether all the elements in a collection exist within a function.

Invariant(Boolean) Invariant(Boolean) Invariant(Boolean) Invariant(Boolean)

Specifica un contratto invariante per il metodo o la proprietà contenitore.Specifies an invariant contract for the enclosing method or property.

Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String) 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.Specifies an invariant contract for the enclosing method or property, and displays a message if the condition for the contract fails.

OldValue<T>(T) OldValue<T>(T) OldValue<T>(T) OldValue<T>(T)

Rappresenta i valori come se fossero all'inizio di un metodo o di una proprietà.Represents values as they were at the start of a method or property.

Requires(Boolean) Requires(Boolean) Requires(Boolean) Requires(Boolean)

Specifica un contratto di precondizione per il metodo o la proprietà contenitore.Specifies a precondition contract for the enclosing method or property.

Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String) 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 non riesce.Specifies a precondition contract for the enclosing method or property, and displays a message if the condition for the contract fails.

Requires<TException>(Boolean) Requires<TException>(Boolean) Requires<TException>(Boolean) 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 non riesce.Specifies a precondition contract for the enclosing method or property, and throws an exception if the condition for the contract fails.

Requires<TException>(Boolean, String) Requires<TException>(Boolean, String) Requires<TException>(Boolean, String) 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 non riesce.Specifies a precondition contract for the enclosing method or property, and throws an exception with the provided message if the condition for the contract fails.

Result<T>() Result<T>() Result<T>() Result<T>()

Rappresenta il valore restituito di un metodo o di una proprietà.Represents the return value of a method or property.

ValueAtReturn<T>(T) ValueAtReturn<T>(T) ValueAtReturn<T>(T) ValueAtReturn<T>(T)

Rappresenta il valore finale (output) di un parametro out in caso di restituzione da un metodo.Represents the final (output) value of an out parameter when returning from a method.

Eventi

ContractFailed ContractFailed ContractFailed ContractFailed

Si verifica quando un contratto ha esito negativo.Occurs when a contract fails.

Si applica a