Contract.Invariant メソッド

定義

外側のメソッドまたはプロパティのコントラクトを指定します。

オーバーロード

Invariant(Boolean)

外側のメソッドまたはプロパティの不変コントラクトを指定します。

Invariant(Boolean, String)

外側のメソッドまたはプロパティの不変コントラクトを指定し、コントラクトの条件が失敗した場合はメッセージを表示します。

Invariant(Boolean)

ソース:
Contracts.cs
ソース:
Contracts.cs
ソース:
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)

ソース:
Contracts.cs
ソース:
Contracts.cs
ソース:
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 条件付きで定義されます。 ランタイム チェックで各パブリック メソッドの最後にチェックされます。 インバリアントが同じクラスのパブリック メソッドに言及している場合、そのパブリック メソッドの最後に通常発生するインバリアント チェックは無効になり、そのクラスに対する最も外側のメソッド呼び出しの最後でのみチェックされます。 別のクラスのメソッドの呼び出しのためにクラスへの再入がなされる場合も同様です。

適用対象