Contract Classe

Definição

Contém métodos estáticos para representar contratos de programa, como pré-condições, postcondições e invariantes de objetos.

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

Observações

As classes de contrato de código permitem-te especificar pré-condições, pós-condições e invariantes de objeto no teu código. As pré-condições são requisitos que devem ser atendidos ao inserir um método ou propriedade. Postconditions descrevem expectativas no momento em que o método ou código de propriedade sai. Invariantes de objeto descrevem o estado esperado para uma classe que não tem problemas de condição. Para mais informações sobre pré-condições, pós-condições e invariantes de objetos, consulte Contratos de Código.

Para ferramentas e instruções detalhadas sobre a utilização de contratos de código, consulte Contratos de Código no Visual Studio Marketplace.

Importante

Deve usar um reescritor binário para inserir a aplicação em tempo de execução dos contratos. Caso contrário, contratos como o Contract.Ensures método só podem ser testados estaticamente e não lançam exceções durante o tempo de execução se um contrato for violado. Pode descarregar o reescritor binário CCRewrite a partir de Code Contracts no Visual Studio Marketplace. O CCRewrite vem com um suplemento de Visual Studio que permite ativar a aplicação de contratos em tempo de execução a partir da página do projeto Properties. O reescritor binário e o suplemento Visual Studio não vêm com o Visual Studio 2010 nem com o SDK do Windows.

Métodos

Name Description
Assert(Boolean, String)

Verifica uma condição; Se a condição for false, segue a política de escalonamento definida pelo analisador e apresenta a mensagem especificada.

Assert(Boolean)

Verifica uma condição; Se a condição for false, segue o conjunto de políticas de escalonamento para o analisador.

Assume(Boolean, String)

Instrui as ferramentas de análise de código a assumirem que uma condição é true, mesmo que não possa ser estaticamente provada como sendo truesempre , e apresenta uma mensagem se a suposição falhar.

Assume(Boolean)

Instrui as ferramentas de análise de código a assumirem que a condição especificada é true, mesmo que não possa ser provado estaticamente que é truesempre .

EndContractBlock()

Marca o fim da secção do contrato quando os contratos de um método contêm apenas pré-condições no if--thenthrow formulário.

Ensures(Boolean, String)

Especifica um contrato pós-condição para uma condição de saída fornecida e uma mensagem a mostrar se a condição for false.

Ensures(Boolean)

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

EnsuresOnThrow<TException>(Boolean, String)

Especifica um contrato pós-condição e uma mensagem a mostrar se a condição for false para o método ou propriedade de anexo, com base na exceção e condição fornecidas.

EnsuresOnThrow<TException>(Boolean)

Especifica um contrato pós-condição para o método ou propriedade de encerramento, com base na exceção e condição fornecidas.

Exists(Int32, Int32, Predicate<Int32>)

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

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

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

ForAll(Int32, Int32, Predicate<Int32>)

Determina se uma condição particular é válida para todos os inteiros num intervalo especificado.

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

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

Invariant(Boolean, String)

Especifica um contrato invariante para o método ou propriedade de anexo, e apresenta uma mensagem se a condição do contrato falhar.

Invariant(Boolean)

Especifica um contrato invariante para o método ou propriedade de encerramento.

OldValue<T>(T)

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

Requires(Boolean, String)

Especifica um contrato de pré-condição para o método ou propriedade de anexo, e apresenta uma mensagem se a condição do contrato falhar.

Requires(Boolean)

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

Requires<TException>(Boolean, String)

Especifica um contrato pré-condição para o método ou propriedade de encerramento, e lança uma exceção com a mensagem fornecida se a condição do contrato falhar.

Requires<TException>(Boolean)

Especifica um contrato pré-condição para o método ou propriedade de encerramento, e lança uma exceção se a condição para o contrato falhar.

Result<T>()

Representa o valor de retorno de um método ou propriedade.

ValueAtReturn<T>(T)

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

evento

Name Description
ContractFailed

Ocorre quando um contrato falha.

Aplica-se a