Contract 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
包含用于表示程序协定(如前置条件、后置条件和对象固定)的静态方法。
public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public 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 |
协定失败时发生。 |