Contract.Invariant Yöntem

Tanım

Kapsayan yöntem veya özellik için bir sözleşme belirtir.

Aşırı Yüklemeler

Name Description
Invariant(Boolean)

Kapsayan yöntem veya özellik için sabit bir sözleşme belirtir.

Invariant(Boolean, String)

Kapsayan yöntem veya özellik için sabit bir sözleşme belirtir ve sözleşme koşulu başarısız olursa bir ileti görüntüler.

Invariant(Boolean)

Kaynak:
Contracts.cs
Kaynak:
Contracts.cs
Kaynak:
Contracts.cs
Kaynak:
Contracts.cs
Kaynak:
Contracts.cs

Kapsayan yöntem veya özellik için sabit bir sözleşme belirtir.

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)

Parametreler

condition
Boolean

Test etmek için koşullu ifade.

Öznitelikler

Açıklamalar

Invariant sözleşmeleri özniteliği tarafından tanımlanan bir yöntemin ContractInvariantMethodAttribute içinde yer alır; genellikle yöntemi olarak adlandırılır ObjectInvariant.

  • Bu sözleşme yalnızca bir sınıfta bildirilen ayrılmış sabit bir yöntemde belirtilebilir. Yöntem korumalı değilse, alt sınıfların sabit değerleri koruduğundan emin olabilmesi için özel üyelere değil yalnızca korumalı üyelere başvurması gerekir.

  • Bu sözleşme istemcilere açık değildir; bu nedenle, kapsayan yöntemden daha az görünür olan üyelere başvurabilir.

  • Bu sabit değerin çalışma zamanı zorlaması için ikili yeniden yazma aracını kullanmanız gerekir.

  • Sabit değerler, sembolün varlığına CONTRACTS FULL bağlı olarak koşullu olarak tanımlanır. Çalışma zamanı denetimi sırasında, sabitler her ortak yöntemin sonunda denetleniyor. Sabit bir aynı sınıftaki bir ortak yöntemden bahsederse, normalde bu ortak yöntemin sonunda gerçekleşecek sabit denetim devre dışı bırakılır ve yalnızca en dıştaki yöntem çağrısının sonunda bu sınıfa denetlenir. Başka bir sınıftaki bir yöntemin çağrılması nedeniyle sınıfa yeniden girilirse bu durum da ortaya çıkar.

Şunlara uygulanır

Invariant(Boolean, String)

Kaynak:
Contracts.cs
Kaynak:
Contracts.cs
Kaynak:
Contracts.cs
Kaynak:
Contracts.cs
Kaynak:
Contracts.cs

Kapsayan yöntem veya özellik için sabit bir sözleşme belirtir ve sözleşme koşulu başarısız olursa bir ileti görüntüler.

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)

Parametreler

condition
Boolean

Test etmek için koşullu ifade.

userMessage
String

Koşul ise görüntülenecek ileti.false

Öznitelikler

Açıklamalar

Invariant sözleşmeleri özniteliği tarafından tanımlanan bir yöntemin ContractInvariantMethodAttribute içinde yer alır; genellikle yöntemi olarak adlandırılır ObjectInvariant.

  • Bu sözleşme yalnızca bir sınıfta bildirilen ayrılmış sabit bir yöntemde belirtilebilir.

  • Bu sözleşme istemcilere açık değildir; bu nedenle, kapsayan yöntemden daha az görünür olan üyelere başvurabilir.

  • Bu sabit değerin çalışma zamanı zorlaması için ikili yeniden yazma aracını kullanmanız gerekir.

  • Sabit değerler sembolde CONTRACTS FULL koşullu olarak tanımlanır. Çalışma zamanı denetimi sırasında, sabitler her ortak yöntemin sonunda denetleniyor. Sabit bir aynı sınıftaki bir ortak yöntemden bahsederse, normalde bu ortak yöntemin sonunda gerçekleşecek sabit denetim devre dışı bırakılır ve yalnızca en dıştaki yöntem çağrısının sonunda bu sınıfa denetlenir. Başka bir sınıftaki bir yöntemin çağrılması nedeniyle sınıfa yeniden girilirse bu durum da ortaya çıkar.

Şunlara uygulanır