Contract Classe

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.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Herança
Contract

Comentários

As classes de contrato de código permitem especificar pré-condições, pós-condições e invariáveis de objeto em seu código. As pré-condições são requisitos que devem ser atendidos ao inserir um método ou uma propriedade. As pós-condições descrevem as expectativas no momento em que o código do método ou da propriedade é fechado. Invariáveis de objeto descrevem o estado esperado para uma classe que não tem problemas de condição. Para obter mais informações sobre pré-condições, pós-condições e invariáveis de objeto, consulte Contratos de Código.

Para obter ferramentas e instruções detalhadas sobre como usar contratos de código, consulte Contratos de Código no Visual Studio Marketplace.

Importante

Você deve usar um reescrito binário para inserir a imposição de contratos em tempo de execução. Caso contrário, contratos como o Contract.Ensures método só podem ser testados estaticamente e não gerarão exceções durante o tempo de execução se um contrato for violado. Você pode baixar o CCRewrite do reescrito binário de Contratos de Código no Visual Studio Marketplace. O CCRewrite vem com um suplemento Visual Studio que permite ativar a imposição de contrato em tempo de execução na página Propriedades do projeto. O reescrito binário e o suplemento Visual Studio não são enviados com Visual Studio 2010 ou o SDK do Windows.

Métodos

Assert(Boolean)

Verifica uma condição; se a condição for false, seguirá a política de escalonamento definida para o analisador.

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.

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.

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.

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.

Ensures(Boolean)

Especifica um contrato de pós-condição para o método ou a propriedade delimitadora.

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.

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.

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.

Exists(Int32, Int32, Predicate<Int32>)

Determina se um teste especificado é verdadeiro para qualquer inteiro dentro do intervalo de inteiros.

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

Determina se um elemento em uma coleção de elementos existe dentro de uma função.

ForAll(Int32, Int32, Predicate<Int32>)

Determina se uma determinada condição é válida para todos os números inteiros em um intervalo especificado.

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

Determina se todos os elementos de uma coleção existem em uma função.

Invariant(Boolean)

Especifica um contrato invariável para o método ou a propriedade delimitadora.

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.

OldValue<T>(T)

Representa valores como eram no início de um método ou propriedade.

Requires(Boolean)

Especifica um contrato de pré-condição para o método ou a propriedade delimitadora.

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.

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.

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.

Result<T>()

Representa o valor retornado de um método ou uma propriedade.

ValueAtReturn<T>(T)

Representa o valor final (a saída) de um parâmetro out ao retornar de um método.

Eventos

ContractFailed

Ocorre quando um contrato falha.

Aplica-se a