Contract Contract Contract Contract Class

Definición

Contiene métodos estáticos para representar contratos del programa como condiciones previas, condiciones posteriores y objetos invariables.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
Herencia
ContractContractContractContract

Comentarios

Las clases de contrato de código le permiten especificar las condiciones previas, condiciones posteriores e invariantes de objeto en el código.Code contract classes let you specify preconditions, postconditions, and object invariants in your code. Las condiciones previas son requisitos que deben cumplirse al escribir un método o propiedad.Preconditions are requirements that must be met when entering a method or property. Las condiciones posteriores describen las expectativas en el momento en que se cierra el código del método o propiedad.Postconditions describe expectations at the time the method or property code exits. Las invariantes de objeto describen el estado esperado para una clase que no tiene ningún problema de la condición.Object invariants describe the expected state for a class that has no condition problems. Para obtener más información acerca de las condiciones previas, condiciones posteriores e invariantes de objeto, vea Code Contracts.For more information about preconditions, postconditions, and object invariants, see Code Contracts.

Para obtener herramientas e instrucciones detalladas de uso de los contratos de código, vea Contratos de código en el sitio web de MSDN DevLabs.For tools and detailed instructions for using code contracts, see Code Contracts on the MSDN DevLabs Web site.

Importante

Debe usar un sistema de reescritura binario para insertar el cumplimiento en tiempo de ejecución de contratos.You must use a binary rewriter to insert run-time enforcement of contracts. En caso contrario, los contratos, como el Contract.Ensures método solo se pueden probar de forma estática y no producirán excepciones durante el tiempo de ejecución si se infringe un contrato.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. Puede descargar el sistema de reescritura binario CCRewrite desde Code Contracts en el sitio Web de MSDN DevLabs.You can download the binary rewriter CCRewrite from Code Contracts on the MSDN DevLabs Web site. CCRewrite viene con un complemento de Visual Studio que le permite activar el cumplimiento del contrato en tiempo de ejecución del proyecto propiedades página.CCRewrite comes with a Visual Studio add-in that enables you to activate run-time contract enforcement from the project Properties page. El sistema de reescritura binario y el complemento de Visual Studio no se suministran con Visual Studio 2010Visual Studio 2010 o el SDK de 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)

Comprueba una condición; si es false, sigue la directiva de elevación establecida para el analizador.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)

Comprueba una condición; si es false, sigue la directiva de elevación establecida por el analizador y muestra el mensaje especificado.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)

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.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)

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.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 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.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 un contrato de condición posterior para el método o la propiedad envolvente.Specifies a postcondition contract for the enclosing method or property.

Ensures(Boolean, String) Ensures(Boolean, String) Ensures(Boolean, String) 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.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 un contrato de condición posterior para el método o la propiedad envolvente, a partir de la excepción y condición proporcionadas.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 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.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 si una prueba especificada es true para cualquier entero dentro de un intervalo de enteros.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 si un elemento de una colección de elementos existe dentro de una función.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 si una condición determinada es válida para todos los enteros de un 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 si todos los elementos de una colección existen dentro de una función.Determines whether all the elements in a collection exist within a function.

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

Especifica un contrato invariable para el método o propiedad envolvente.Specifies an invariant contract for the enclosing method or property.

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

Especifica un contrato de condición invariable para el método o propiedad envolvente, y muestra un mensaje si la condición del contrato da error.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 los valores como eran al principio de un método o propiedad.Represents values as they were at the start of a method or property.

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

Especifica un contrato de condición previa para el método o propiedad envolvente.Specifies a precondition contract for the enclosing method or property.

Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String) 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.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 un contrato de condición previa para el método o propiedad envolvente, y produce una excepción si la condición de error.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 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.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 el valor devuelto de un método o propiedad.Represents the return value of a method or property.

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

Representa el valor final (resultado) de un parámetro out cuando devuelve de un método.Represents the final (output) value of an out parameter when returning from a method.

Eventos

ContractFailed ContractFailed ContractFailed ContractFailed

Se produce cuando un contrato da error.Occurs when a contract fails.

Se aplica a