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 sunulmaz; bu nedenle, kapsayan yöntemden daha az görünür olan ü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
göre koşullu olarak tanımlanır. Çalışma zamanı denetimi sırasında, sabitler her genel yöntemin sonunda denetleniyor. Sabit bir aynı sınıftaki bir ortak yöntemden bahsederse, normalde bu genel yöntemin sonunda gerçekleşecek sabit denetim devre dışı bırakılır ve yalnızca en dıştaki yöntemin sonunda bu sınıfa çağrı yapılır. Bu durum, başka bir sınıftaki bir yönteme yapılan çağrı nedeniyle sınıfın yeniden girilmiş olması durumunda da gerçekleşir.
Ş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 sunulmaz; bu nedenle, kapsayan yöntemden daha az görünür olan ü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 genel yöntemin sonunda denetleniyor. Sabit bir aynı sınıftaki bir ortak yöntemden bahsederse, normalde bu genel yöntemin sonunda gerçekleşecek sabit denetim devre dışı bırakılır ve yalnızca en dıştaki yöntemin sonunda bu sınıfa çağrı yapılır. Bu durum, başka bir sınıftaki bir yönteme yapılan çağrı nedeniyle sınıfın yeniden girilmiş olması durumunda da gerçekleşir.
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin