Compartir a través de


Contract Clase

Definición

Contiene métodos estáticos para representar contratos del programa como condiciones previas, condiciones posteriores y objetos invariables.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Herencia
Contract

Comentarios

Las clases de contrato de código permiten especificar condiciones previas, condiciones posteriores y invariables de objeto en el código. Las condiciones previas son requisitos que deben cumplirse al escribir un método o propiedad. Las condiciones posteriores describen las expectativas en el momento en que se cierra el código del método o propiedad. Las invariables de objeto describen el estado esperado para una clase que no tiene problemas de condición. Para obtener más información sobre las condiciones previas, las condiciones posteriores y las invariables de objetos, vea Contratos de código.

Para obtener herramientas e instrucciones detalladas para usar contratos de código, consulte Contratos de código en Visual Studio Marketplace.

Importante

Debe usar una reescritura binaria para insertar la aplicación en tiempo de ejecución de los contratos. De lo contrario, los contratos como el Contract.Ensures método solo se pueden probar estáticamente y no producirán excepciones durante el tiempo de ejecución si se infringe un contrato. Puede descargar el reescrito binario CCRewrite de Contratos de código en Visual Studio Marketplace. CCRewrite incluye un complemento de Visual Studio que permite activar la aplicación de contratos en tiempo de ejecución desde la página Propiedades del proyecto. El reescritura binario y el complemento de Visual Studio no se incluyen con Visual Studio 2010 ni con el Windows SDK.

Métodos

Assert(Boolean)

Comprueba una condición; si es false, sigue la directiva de elevación establecida para el analizador.

Assert(Boolean, String)

Comprueba una condición; si es false, sigue la directiva de elevación establecida por el analizador y muestra el mensaje especificado.

Assume(Boolean)

Indica a las herramientas de análisis de código que supongan que la condición especificada es true, aun cuando no se pueda demostrar estáticamente que siempre sea true.

Assume(Boolean, String)

Indica a las herramientas de análisis de código que supongan que una condición es true, aun cuando no se puede demostrar estáticamente que siempre es true, y muestra un mensaje si la hipótesis es errónea.

EndContractBlock()

Marca el final de la sección de contrato cuando los contratos de un método solo contienen condiciones previas con el formato if-then-throw.

Ensures(Boolean)

Especifica un contrato de condición posterior para el método o la propiedad envolvente.

Ensures(Boolean, String)

Especifica un contrato de condición posterior para una condición de salida proporcionada y un mensaje para mostrar si la condición es false.

EnsuresOnThrow<TException>(Boolean)

Especifica un contrato de condición posterior para el método o la propiedad envolvente, a partir de la excepción y condición proporcionadas.

EnsuresOnThrow<TException>(Boolean, String)

Especifica un contrato de condición posterior para el método o la propiedad envolvente, y un mensaje para mostrar si la condición es false, a partir de la excepción y condición proporcionadas.

Exists(Int32, Int32, Predicate<Int32>)

Determina si una prueba especificada es true para cualquier entero dentro de un intervalo de enteros.

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

Determina si un elemento de una colección de elementos existe dentro de una función.

ForAll(Int32, Int32, Predicate<Int32>)

Determina si una condición determinada es válida para todos los enteros de un intervalo especificado.

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

Determina si todos los elementos de una colección existen dentro de una función.

Invariant(Boolean)

Especifica un contrato invariable para el método o propiedad envolvente.

Invariant(Boolean, String)

Especifica un contrato invariable para el método o propiedad envolvente, y muestra un mensaje si la condición del contrato da error.

OldValue<T>(T)

Representa los valores como eran al principio de un método o propiedad.

Requires(Boolean)

Especifica un contrato de condición previa para el método o propiedad envolvente.

Requires(Boolean, String)

Especifica un contrato de condición previa para el método o propiedad envolvente, y muestra un mensaje si la condición del contrato da error.

Requires<TException>(Boolean)

Especifica un contrato de condición previa para el método o propiedad envolvente, y produce una excepción si no se cumple la condición del contrato.

Requires<TException>(Boolean, String)

Especifica un contrato de condición previa para el método o propiedad envolvente, y produce una excepción con el mensaje proporcionado si no se cumple la condición del contrato.

Result<T>()

Representa el valor devuelto de un método o propiedad.

ValueAtReturn<T>(T)

Representa el valor final (resultado) de un parámetro out cuando se devuelve de un método.

Eventos

ContractFailed

Se produce cuando un contrato da error.

Se aplica a