Cer Enum

Definisi

Perhatian

The Constrained Execution Region (CER) feature is not supported.

Menentukan perilaku metode saat dipanggil dalam wilayah eksekusi yang dibatasi.

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
Warisan
Atribut

Bidang

MayFail 1

Dalam menghadapi kondisi yang luar biasa, metode mungkin gagal. Dalam hal ini, metode akan melaporkan kembali ke metode panggilan apakah berhasil atau gagal. Metode harus memiliki CER di sekitar isi metode untuk memastikan bahwa metode dapat melaporkan nilai yang dikembalikan.

None 0

Metode, jenis, atau perakitan tidak memiliki konsep CER. Itu tidak memanfaatkan jaminan CER.

Success 2

Dalam menghadapi kondisi luar biasa, metode ini dijamin berhasil. Anda harus selalu membuat CER di sekitar metode yang dipanggil, bahkan ketika dipanggil dari dalam wilayah non-CER. Metode berhasil jika mencapai apa yang dimaksudkan. Misalnya, menandai Count dengan ReliabilityContractAttribute(Cer.Success) menyiratkan bahwa ketika dijalankan di bawah CER, itu selalu mengembalikan hitungan jumlah elemen di ArrayList dan tidak pernah dapat meninggalkan bidang internal dalam keadaan tidak ditentukan.

Contoh

Contoh kode berikut menunjukkan penggunaan Cer enumerasi saat menentukan wilayah eksekusi yang dibatasi untuk metode . Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk ReliabilityContractAttribute konstruktor.

[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

Keterangan

Enumerasi Cer menentukan perilaku metode, jenis, atau perakitan dalam wilayah eksekusi yang dibatasi (CER). Gunakan salah satu dari tiga nilai yang tersedia untuk menunjukkan bahwa entitas akan berhasil, tidak memiliki pengetahuan tentang CER, atau mungkin (secara deterministik) dapat melaporkan keberhasilan atau kegagalan.

CER memberikan jaminan bahwa wilayah kode akan dijalankan tanpa gangguan bahkan jika pengecualian asinkron seperti pengecualian di luar memori utas yang dibatalkan, atau luapan tumpukan dinaikkan.

Namun, Cer.None nilai enumerasi menunjukkan bahwa metode, jenis, atau perakitan tidak memiliki konsep CER. Itu tidak memanfaatkan jaminan CER. Ini menyiratkan hal berikut:

  • Dalam menghadapi kondisi luar biasa, metode mungkin gagal.

  • Metode mungkin atau mungkin tidak melaporkan bahwa gagal (tidak deterministik).

  • Metode ini tidak ditulis dengan cer dalam pikiran (yang merupakan skenario yang paling mungkin).

Jika metode, jenis, atau rakitan tidak secara eksplisit ditandai untuk berhasil, metode tersebut secara implisit ditandai sebagai Cer.None.

Berlaku untuk

Lihat juga