Contract 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
包含用于表示程序协定(如前置条件、后置条件和对象固定)的静态方法。
public ref class Contract abstract sealedpublic static class Contracttype Contract = classPublic Class Contract- 继承
- 
				Contract
注解
通过代码协定类,可以在代码中指定前置条件、后置条件和对象不变量。 前置条件是输入方法或属性时必须满足的要求。 后置条件描述在方法或属性代码退出时的预期。 对象不变量描述没有条件问题的类的预期状态。 有关前置条件、后置条件和对象不变量的详细信息,请参阅 代码协定。
有关使用代码协定的工具和详细说明,请参阅 Visual Studio Marketplace 上的 代码协定 。
重要
必须使用二进制重写程序来插入协定的运行时强制实施。 否则,方法等 Contract.Ensures 协定只能静态测试,如果违反协定,则在运行时不会引发异常。 可以从 Visual Studio 市场上 的代码协定 下载二进制重写程序 CCRewrite。 CCRewrite 附带一个 Visual Studio 加载项,可用于从项目 “属性” 页激活运行时协定强制实施。 二进制重写器和 Visual Studio 加载项不随 Visual Studio 2010 或 Windows SDK一起提供。
方法
| Assert(Boolean) | 检查条件;如果条件为  | 
| Assert(Boolean, String) | 检查条件;如果条件为  | 
| Assume(Boolean) | 指示代码分析工具假设指定的条件为  | 
| Assume(Boolean, String) | 指示代码分析工具假设某个条件为  | 
| EndContractBlock() | 当方法的协定仅包含  | 
| Ensures(Boolean) | 为封闭方法或属性指定一个后置条件协定。 | 
| Ensures(Boolean, String) | 为提供的退出条件指定后置条件协定,并指定条件为  | 
| EnsuresOnThrow<TException>(Boolean) | 基于提供的异常和条件为封闭方法或属性指定一个后置条件协定。 | 
| EnsuresOnThrow<TException>(Boolean, String) | 基于提供的异常和条件为封闭方法或属性指定后置条件协定,并指定条件为  | 
| Exists(Int32, Int32, Predicate<Int32>) | 确定指定的测试对某个整数范围中的任何整数是否都为 true。 | 
| Exists<T>(IEnumerable<T>, Predicate<T>) | 确定函数中是否存在某个元素集合中的元素。 | 
| ForAll(Int32, Int32, Predicate<Int32>) | 确定某个特定条件是否对指定范围内的所有整数都有效。 | 
| ForAll<T>(IEnumerable<T>, Predicate<T>) | 确定函数中是否存在某个集合中的所有元素。 | 
| Invariant(Boolean) | 为封闭方法或属性指定一个固定的协定。 | 
| Invariant(Boolean, String) | 为封闭方法或属性指定一个固定协定,并在该协定的条件失败时显示一条消息。 | 
| OldValue<T>(T) | 表示方法或属性开始时的值。 | 
| Requires(Boolean) | 为封闭方法或属性指定一个前置条件协定。 | 
| Requires(Boolean, String) | 为封闭方法或属性指定一个前置条件协定,并在该协定的条件失败时显示一条消息。 | 
| Requires<TException>(Boolean) | 为封闭方法或属性指定一个前置条件协定,并在该协定的条件失败时引发异常。 | 
| Requires<TException>(Boolean, String) | 为封闭方法或属性指定一个前置条件协定,并在该协定的条件失败时引发包含提供的消息的异常。 | 
| Result<T>() | 表示一个方法或属性的返回值。 | 
| ValueAtReturn<T>(T) | 表示从一个方法返回时  | 
事件
| ContractFailed | 协定失败时发生。 |