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

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 CountReliabilityContractAttribute(Cer.Success) , bir CER altında çalıştırıldığında her zaman içindeki ArrayList öğelerin sayısını döndürdüğü ve iç alanları hiçbir zaman belirsiz bir durumda bırakamayacağı 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

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.

Şunlara uygulanır

Ayrıca bkz.