Contract.Invariant Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kapsayan yöntem veya özellik için bir sözleşme belirtir.
Aşırı Yüklemeler
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
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 contracts ö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 sabitleri 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 üyelere başvurabilir.
Bu sabitin çalışma zamanı zorlaması için ikili yeniden yazanı 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 bu sınıfa yapılan en dıştaki yöntem çağrısının sonunda denetlenir. Başka bir sınıftaki bir yönteme yapılan çağrı nedeniyle sınıf yeniden girilirse de bu durum ortaya çıkar.
Şunlara uygulanır
Invariant(Boolean, String)
- 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 contracts ö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 üyelere başvurabilir.
Bu sabitin çalışma zamanı zorlaması için ikili yeniden yazanı 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 bu sınıfa yapılan en dıştaki yöntem çağrısının sonunda denetlenir. Başka bir sınıftaki bir yönteme yapılan çağrı nedeniyle sınıf yeniden girilirse de bu durum ortaya çıkar.