Contract.Invariant 메서드

정의

바깥쪽 메서드 또는 속성에 대한 계약을 지정합니다.

오버로드

Invariant(Boolean)

바깥쪽 메서드 또는 속성에 대한 고정 계약을 지정합니다.

Invariant(Boolean, String)

바깥쪽 메서드나 속성에 대한 invariant 계약을 지정하고 계약의 조건이 실패한 경우 메시지를 표시합니다.

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 존재에 따라 조건부로 정의됩니다. 런타임 검사 중에 각 public 메서드의 끝에서 고정을 검사합니다. 고정이 동일한 클래스의 public 메서드를 언급하는 경우 해당 public 메서드의 끝에서 일반적으로 발생하는 고정 검사는 사용하지 않도록 설정되고 해당 클래스에 대한 가장 바깥쪽 메서드 호출의 끝에서만 확인됩니다. 이는 다른 클래스의 메서드 호출로 인해 클래스가 다시 입력되는 경우에도 발생합니다.

적용 대상

Invariant(Boolean, String)

Source:
Contracts.cs
Source:
Contracts.cs
Source:
Contracts.cs

바깥쪽 메서드나 속성에 대한 invariant 계약을 지정하고 계약의 조건이 실패한 경우 메시지를 표시합니다.

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 정의됩니다. 런타임 검사 중에 각 public 메서드의 끝에서 고정을 검사합니다. 고정이 동일한 클래스의 public 메서드를 언급하는 경우 해당 public 메서드의 끝에서 일반적으로 발생하는 고정 검사는 사용하지 않도록 설정되고 해당 클래스에 대한 가장 바깥쪽 메서드 호출의 끝에서만 확인됩니다. 이는 다른 클래스의 메서드 호출로 인해 클래스가 다시 입력되는 경우에도 발생합니다.

적용 대상