Contract.Invariant メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
外側のメソッドまたはプロパティのコントラクトを指定します。
オーバーロード
| 名前 | 説明 |
|---|---|
| Invariant(Boolean) |
外側のメソッドまたはプロパティの不変コントラクトを指定します。 |
| Invariant(Boolean, String) |
外側のメソッドまたはプロパティの不変コントラクトを指定し、コントラクトの条件が失敗した場合にメッセージを表示します。 |
Invariant(Boolean)
外側のメソッドまたはプロパティの不変コントラクトを指定します。
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)
外側のメソッドまたはプロパティの不変コントラクトを指定し、コントラクトの条件が失敗した場合にメッセージを表示します。
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")>]
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シンボルで条件付きで定義されます。 実行時のチェック中に、インバリアントは各パブリック メソッドの末尾でチェックされます。 インバリアントが同じクラス内のパブリック メソッドに言及した場合、そのパブリック メソッドの最後に通常発生するインバリアント チェックは無効になり、そのクラスに対する最も外側のメソッド呼び出しの最後でのみチェックされます。 これは、別のクラスのメソッドの呼び出しが原因でクラスが再入力された場合にも発生します。