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
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 olmasına bakılmaksızın çağıran yönteme geri rapor eder. Yöntemin dönüş değerini bildirebilmesi için yöntem gövdesi çevresinde bir CER olması gerekir. |
None | 0 | Yöntemin, türün veya derlemenin CER kavramı yoktur. CER garantilerinden yararlanmaz. |
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 |
Ö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
Cer Numaralandırma, 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, durdurulan 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, Cer.None
numaralandırma değeri yöntemin, 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öntem 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ı olmak için açıkça işaretlenmemişse, örtük olarak olarak Cer.None
işaretlenir.