Contract.Invariant 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为封闭方法或属性指定一个协定。
重载
Invariant(Boolean) |
为封闭方法或属性指定一个固定的协定。 |
Invariant(Boolean, String) |
为封闭方法或属性指定一个固定协定,并在该协定的条件失败时显示一条消息。 |
Invariant(Boolean)
- Source:
- Contracts.cs
- Source:
- Contracts.cs
- Source:
- Contracts.cs
为封闭方法或属性指定一个固定的协定。
public:
static void Invariant(bool condition);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool -> unit
Public Shared Sub Invariant (condition As Boolean)
参数
- condition
- Boolean
要测试的条件表达式。
- 属性
注解
Invariant 协定包含在由 ContractInvariantMethodAttribute 属性标识的方法中;通常,该方法名为 ObjectInvariant
。
只能在对类声明的专用固定方法中指定此协定。 如果方法未密封,则它应仅引用受保护成员,而不引用私有成员,以便子类可以确保维护固定。
此协定不向客户端公开;因此,它可能引用不如封闭方法更不可见的成员。
必须使用二进制重写器在运行时强制实施此固定。
固定项是根据符号的存在
CONTRACTS FULL
有条件地定义的。 在运行时检查期间,每次公共方法结束都要检查固定协定。 如果固定变量提及同一类中的公共方法,则通常在该公共方法末尾发生的固定检查将被禁用,并且仅在该类的最外层方法调用结束时进行检查。 如果因调用其他类上的方法而重新输入类,也会发生此类情况。
适用于
Invariant(Boolean, String)
- Source:
- Contracts.cs
- Source:
- Contracts.cs
- Source:
- Contracts.cs
为封闭方法或属性指定一个固定协定,并在该协定的条件失败时显示一条消息。
public:
static void Invariant(bool condition, System::String ^ userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string? userMessage);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool * string -> unit
Public Shared Sub Invariant (condition As Boolean, userMessage As String)
参数
- condition
- Boolean
要测试的条件表达式。
- userMessage
- String
条件为 false
时要显示的消息。
- 属性
注解
Invariant 协定包含在由 ContractInvariantMethodAttribute 属性标识的方法中;通常,该方法名为 ObjectInvariant
。
只能在对类声明的专用固定方法中指定此协定。
此协定不向客户端公开;因此,它可能引用不如封闭方法更不可见的成员。
必须使用二进制重写器在运行时强制实施此固定。
固定变量在符号上
CONTRACTS FULL
有条件地定义。 在运行时检查期间,每次公共方法结束都要检查固定协定。 如果固定变量提及同一类中的公共方法,则通常在该公共方法末尾发生的固定检查将被禁用,并且仅在该类的最外层方法调用结束时进行检查。 如果因调用其他类上的方法而重新输入类,也会发生此类情况。