Cer Sabit listesi
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.
Dikkat
The Constrained Execution Region (CER) feature is not supported.
Kısıtlanmış yürütme bölgesinde çağrıldığında yöntemin davranışını belirtir.
public enum class Cer
[System.Obsolete("The Constrained Execution Region (CER) feature is not supported.", DiagnosticId="SYSLIB0004", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public enum Cer
public enum Cer
[System.Serializable]
public enum Cer
[<System.Obsolete("The Constrained Execution Region (CER) feature is not supported.", DiagnosticId="SYSLIB0004", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type Cer =
type Cer =
[<System.Serializable>]
type Cer =
Public Enum Cer
- Devralma
- Öznitelikler
Alanlar
| Name | Değer | Description |
|---|---|---|
| None | 0 | Yöntemin, türün veya derlemenin CER kavramı yoktur. CER garantilerinden yararlanmaz. |
| MayFail | 1 | Olağanüstü koşullar karşısında yöntemi başarısız olabilir. Bu durumda, yöntem başarılı veya başarısız olup olmadığını çağıran yönteme geri rapor eder. Yöntemin dönüş değerini bildirediğinden emin olmak için yöntem gövdesi çevresinde bir CER olmalıdır. |
| Success | 2 | Olağanüstü koşullar karşısında yöntemin başarılı olması garanti edilir. CER olmayan bir bölgeden çağrıldığında bile, her zaman çağrılan yöntemin etrafında bir CER oluşturmanız gerekir. Amaçlananı gerçekleştirirse yöntem başarılı olur. Örneğin ile işaretlemek Count |
Örnekler
Aşağıdaki kod örneği, bir yöntem için kısıtlanmış yürütme bölgesi belirtirken numaralandırmanın Cer kullanımını gösterir. Bu kod örneği, oluşturucu için ReliabilityContractAttribute sağlanan daha büyük bir örneğin parçasıdır.
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[MethodImpl(MethodImplOptions.NoInlining)]
void StackDepth2()
{
try
{
consistentLevel2 = false;
if (depth == 2)
Thread.Sleep(-1);
StackDepth3();
}
finally
{
consistentLevel2 = true;
}
}
<ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)>
<MethodImpl(MethodImplOptions.NoInlining)>
Sub StackDepth2()
Try
consistentLevel2 = False
If depth = 2 Then Thread.Sleep(-1)
StackDepth3()
Finally
consistentLevel2 = True
End Try
End Sub
Açıklamalar
Numaralandırma Cer , kısıtlanmış yürütme bölgesi (CER) içindeki bir yöntemin, türün veya derlemenin davranışını belirtir. Varlığın başarılı olacağını, CER bilgisi olmadığını veya (belirlenimci olarak) başarıyı veya başarısızlığı bildirebileceğini belirtmek için kullanılabilir üç değerden birini kullanın.
CER, durdurulmuş iş parçacığı yetersiz bellek özel durumu veya yığın taşması gibi zaman uyumsuz bir özel durum ortaya çıksa bile kod bölgesinin kesintisiz olarak yürütüleceğini garanti eder.
Ancak numaralandırma değeri yöntemin Cer.None , türün veya derlemenin CER kavramı olmadığını gösterir. CER garantilerinden yararlanmaz. Bu, aşağıdakileri ifade eder:
Olağanüstü koşullar karşısında yöntemi başarısız olabilir.
yöntemi başarısız olduğunu bildirebilir veya bildirmeyebilir (belirlenimci değildir).
yöntemi CER'ler göz önünde bulundurularak yazılmaz (en olası senaryodur).
Bir yöntem, tür veya derleme başarılı olacak şekilde açıkça işaretlenmemişse, örtük olarak olarak Cer.Noneişaretlenir.