Bagikan melalui


Contract.Invariant Metode

Definisi

Menentukan kontrak untuk metode atau properti penutup.

Overload

Invariant(Boolean)

Menentukan kontrak invarian untuk metode atau properti penutup.

Invariant(Boolean, String)

Menentukan kontrak invarian untuk metode atau properti penutup, dan menampilkan pesan jika kondisi untuk kontrak gagal.

Invariant(Boolean)

Sumber:
Contracts.cs
Sumber:
Contracts.cs
Sumber:
Contracts.cs

Menentukan kontrak invarian untuk metode atau properti penutup.

public:
 static void Invariant(bool condition);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool -> unit
Public Shared Sub Invariant (condition As Boolean)

Parameter

condition
Boolean

Ekspresi kondisi yang akan diuji.

Atribut

Keterangan

Invariant kontrak terkandung dalam metode yang diidentifikasi oleh ContractInvariantMethodAttribute atribut ; biasanya, metode diberi nama ObjectInvariant.

  • Kontrak ini hanya dapat ditentukan dalam metode invarian khusus yang dideklarasikan pada kelas. Jika metode tidak disegel, itu harus merujuk hanya ke anggota yang dilindungi, bukan anggota privat, sehingga subkelas dapat dipastikan untuk mempertahankan invarian.

  • Kontrak ini tidak diekspos ke klien; oleh karena itu, ini dapat mereferensikan anggota yang kurang terlihat daripada metode penutup.

  • Anda harus menggunakan penulis ulang biner untuk penegakan run-time invariant ini.

  • Invarian didefinisikan secara kondisional berdasarkan keberadaan CONTRACTS FULL simbol. Selama pemeriksaan run-time, invarian diperiksa di akhir setiap metode publik. Jika invarian menyebutkan metode publik di kelas yang sama, pemeriksaan invarian yang biasanya akan terjadi di akhir metode publik tersebut dinonaktifkan dan hanya diperiksa di akhir panggilan metode terluar ke kelas tersebut. Ini juga terjadi jika kelas dimasukkan kembali karena panggilan ke metode di kelas lain.

Berlaku untuk

Invariant(Boolean, String)

Sumber:
Contracts.cs
Sumber:
Contracts.cs
Sumber:
Contracts.cs

Menentukan kontrak invarian untuk metode atau properti penutup, dan menampilkan pesan jika kondisi untuk kontrak gagal.

public:
 static void Invariant(bool condition, System::String ^ userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string? userMessage);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool * string -> unit
Public Shared Sub Invariant (condition As Boolean, userMessage As String)

Parameter

condition
Boolean

Ekspresi kondisi yang akan diuji.

userMessage
String

Pesan yang akan ditampilkan jika kondisinya adalah false.

Atribut

Keterangan

Invariant kontrak terkandung dalam metode yang diidentifikasi oleh ContractInvariantMethodAttribute atribut ; biasanya, metode diberi nama ObjectInvariant.

  • Kontrak ini hanya dapat ditentukan dalam metode invarian khusus yang dideklarasikan pada kelas.

  • Kontrak ini tidak diekspos ke klien; oleh karena itu, ini dapat mereferensikan anggota yang kurang terlihat daripada metode penutup.

  • Anda harus menggunakan penulis ulang biner untuk penegakan run-time invariant ini.

  • Invarian didefinisikan secara kondisional pada CONTRACTS FULL simbol . Selama pemeriksaan run-time, invarian diperiksa di akhir setiap metode publik. Jika invarian menyebutkan metode publik di kelas yang sama, pemeriksaan invarian yang biasanya akan terjadi di akhir metode publik tersebut dinonaktifkan dan hanya diperiksa di akhir panggilan metode terluar ke kelas tersebut. Ini juga terjadi jika kelas dimasukkan kembali karena panggilan ke metode di kelas lain.

Berlaku untuk