Contract Contract Contract Contract Class

Definição

Contém métodos estáticos para representação de contratos de programa, como pré-condições, pós-condições e invariáveis de objeto.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
Herança
ContractContractContractContract

Comentários

Classes de contrato de código permitem que você especificar pré-condições, pós-condições e invariáveis de objeto em seu código.Code contract classes let you specify preconditions, postconditions, and object invariants in your code. As pré-condições são requisitos que devem ser atendidos ao inserir um método ou uma propriedade.Preconditions are requirements that must be met when entering a method or property. As pós-condições descrevem as expectativas no momento em que o código do método ou da propriedade é fechado.Postconditions describe expectations at the time the method or property code exits. Invariáveis de objeto descrevem o estado esperado de uma classe que não tem nenhum problema de condição.Object invariants describe the expected state for a class that has no condition problems. Para obter mais informações sobre como pré-condições, pós-condições e invariáveis de objeto, consulte contratos de código.For more information about preconditions, postconditions, and object invariants, see Code Contracts.

Para obter ferramentas e instruções detalhadas sobre como usar contratos de código, consulte Contratos de código no site do DevLabs no MSDN.For tools and detailed instructions for using code contracts, see Code Contracts on the MSDN DevLabs Web site.

Importante

Você deve usar um regravador binário para inserir a imposição de contratos de tempo de execução.You must use a binary rewriter to insert run-time enforcement of contracts. Caso contrário, contratos, como o Contract.Ensures método só pode ser testado estaticamente e não lançam exceções durante o tempo de execução se um contrato é violado.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. Você pode baixar o regravador binário CCRewrite partir contratos de código no site do MSDN do DevLabs.You can download the binary rewriter CCRewrite from Code Contracts on the MSDN DevLabs Web site. CCRewrite vem com um suplemento do Visual Studio que permite que você ative a imposição de contrato de tempo de execução do projeto propriedades página.CCRewrite comes with a Visual Studio add-in that enables you to activate run-time contract enforcement from the project Properties page. O regravador binário e o suplemento do Visual Studio não são fornecidos com Visual Studio 2010Visual Studio 2010 ou o SDK do Windows.The binary rewriter and the Visual Studio add-in do not ship with Visual Studio 2010Visual Studio 2010 or the Windows SDK.

Métodos

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

Verifica uma condição; se a condição for false, seguirá a política de escalonamento definida para o analisador.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)

Verifica uma condição; se a condição for false, seguirá a política de escalonamento definida pelo analisador e exibirá a mensagem especificada.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)

Instrui as ferramentas de análise de código a assumir que a condição especificada é true, mesmo que ela não possa ser estaticamente comprovada ser 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)

Instrui as ferramentas de análise de código a pressupor que a condição é true, mesmo que ela não possa ser estaticamente comprovada ser sempre true e exibe uma mensagem se a pressuposição falhar.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()

Marca o fim da seção do contrato quando os contratos de um método contêm apenas precondições no 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)

Especifica um contrato de pós-condição para o método ou a propriedade delimitadora.Specifies a postcondition contract for the enclosing method or property.

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

Especifica um contrato de pós-condição para uma condição de saída fornecida e uma mensagem a ser exibida se a condição for 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)

Especifica um contrato de pós-condição para o método ou a propriedade delimitadora, com base na exceção e na condição fornecidas.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)

Especifica um contrato de pós-condição e uma mensagem a ser exibida se a condição for false para o método ou a propriedade delimitadora, com base na exceção e na condição fornecidas.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 um teste especificado é verdadeiro para qualquer inteiro dentro do intervalo de inteiros.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 um elemento em uma coleção de elementos existe dentro de uma função.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 uma determinada condição é válida para todos os números inteiros em um intervalo especificado.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 todos os elementos de uma coleção existem em uma função.Determines whether all the elements in a collection exist within a function.

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

Especifica um contrato invariável para o método ou a propriedade delimitadora.Specifies an invariant contract for the enclosing method or property.

Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String)

Especifica um contrato invariável para a propriedade ou o método delimitador e exibe uma mensagem se a condição para o contrato falhar.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)

Representa valores como eram no início de um método ou propriedade.Represents values as they were at the start of a method or property.

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

Especifica um contrato de pré-condição para o método ou a propriedade delimitadora.Specifies a precondition contract for the enclosing method or property.

Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String)

Especifica um contrato de precondição para a propriedade ou o método delimitador e exibe uma mensagem se a condição para o contrato falhar.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)

Especifica um contrato de precondição para a propriedade ou o método delimitador e lança uma exceção se a condição para o contrato falhar.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)

Especifica um contrato de precondição para a propriedade ou o método delimitador e lança uma exceção com a mensagem fornecida se a condição para o contrato falhar.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>()

Representa o valor retornado de um método ou uma propriedade.Represents the return value of a method or property.

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

Representa o valor final (a saída) de um parâmetro out ao retornar de um método.Represents the final (output) value of an out parameter when returning from a method.

Eventos

ContractFailed ContractFailed ContractFailed ContractFailed

Ocorre quando um contrato falha.Occurs when a contract fails.

Aplica-se a