Contract Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 que você especifique 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 reescritor 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ó poderão 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 REescritor binário CCRewrite de Contratos de Código no Visual Studio Marketplace. O CCRewrite vem com um suplemento do 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 do Visual Studio não são fornecidos com o Visual Studio 2010 ou o SDK do Windows.
Métodos
Assert(Boolean) |
Verifica uma condição; se a condição for |
Assert(Boolean, String) |
Verifica uma condição; se a condição for |
Assume(Boolean) |
Instrui as ferramentas de análise de código a assumir que a condição especificada é |
Assume(Boolean, String) |
Instrui as ferramentas de análise de código a pressupor que a condição é |
EndContractBlock() |
Marca o fim da seção do contrato quando os contratos de um método contêm apenas precondições no formato |
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 |
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 |
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 |
Eventos
ContractFailed |
Ocorre quando um contrato falha. |