Contract.Invariant 方法

定义

指定封闭方法或属性的协定。

重载

名称 说明
Invariant(Boolean)

指定封闭方法或属性的固定协定。

Invariant(Boolean, String)

指定封闭方法或属性的固定协定,如果协定的条件失败,则显示一条消息。

Invariant(Boolean)

Source:
Contracts.cs
Source:
Contracts.cs
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
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 有条件地定义。 在运行时检查期间,在每个公共方法的末尾检查固定项。 如果固定引用同一类中的公共方法,则会禁用通常在该公共方法末尾发生的固定检查,并且仅在对该类的最外层方法调用结束时进行检查。 如果由于对另一类的方法的调用而重新输入类,也会发生这种情况。

适用于