Contract.Invariant Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.