Cer Sabit listesi

Tanım

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 ReliabilityContractAttribute(Cer.Success) işaretlemekCount, cer altında çalıştırıldığında her zaman içindeki ArrayList öğelerin sayısını döndürür ve iç alanları hiçbir zaman belirsiz bir durumda bırakamazsınız anlamına gelir.

Ö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.Noneişaretlenir.

Şunlara uygulanır

Ayrıca bkz.