Contract Kelas
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.
Berisi metode statis untuk mewakili kontrak program seperti prasyarat, pascakondisi, dan invarian objek.
public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
- Warisan
-
Contract
Keterangan
Kelas kontrak kode memungkinkan Anda menentukan prasyarat, pascakondisi, dan invarian objek dalam kode Anda. Pra-kondisi adalah persyaratan yang harus dipenuhi saat memasukkan metode atau properti. Pasca-kondisi menjelaskan ekspektasi pada saat metode atau kode properti keluar. Invarian objek menjelaskan status yang diharapkan untuk kelas yang tidak memiliki masalah kondisi. Untuk informasi selengkapnya tentang prasyarat, pascakondisi, dan invarian objek, lihat Kontrak Kode.
Untuk alat dan instruksi terperinci untuk menggunakan kontrak kode, lihat Kontrak Kode di Visual Studio Marketplace.
Penting
Anda harus menggunakan penulis ulang biner untuk menyisipkan penegakan kontrak run-time. Jika tidak, kontrak seperti Contract.Ensures metode hanya dapat diuji secara statis dan tidak akan melemparkan pengecualian selama durasi jika kontrak dilanggar. Anda dapat mengunduh penulis ulang biner CCRewrite dari Kontrak Kode di Visual Studio Marketplace. CCRewrite dilengkapi dengan add-in Visual Studio yang memungkinkan Anda mengaktifkan penegakan kontrak run-time dari halaman Properti proyek. Penulis ulang biner dan add-in Visual Studio tidak dikirim dengan Visual Studio 2010 atau Windows SDK.
Metode
Assert(Boolean) |
Memeriksa kondisi; jika kondisinya adalah |
Assert(Boolean, String) |
Memeriksa kondisi; jika kondisinya adalah |
Assume(Boolean) |
Menginstruksikan alat analisis kode untuk mengasumsikan bahwa kondisi yang ditentukan adalah |
Assume(Boolean, String) |
Menginstruksikan alat analisis kode untuk mengasumsikan bahwa kondisi adalah |
EndContractBlock() |
Menandai akhir bagian kontrak ketika kontrak metode hanya berisi prasyarat dalam |
Ensures(Boolean) |
Menentukan kontrak pascakondisi untuk metode atau properti penutup. |
Ensures(Boolean, String) |
Menentukan kontrak pascakondisi untuk kondisi keluar yang disediakan dan pesan yang akan ditampilkan jika kondisinya adalah |
EnsuresOnThrow<TException>(Boolean) |
Menentukan kontrak pascakondisi untuk metode atau properti penutup, berdasarkan pengecualian dan kondisi yang disediakan. |
EnsuresOnThrow<TException>(Boolean, String) |
Menentukan kontrak pascakondisi dan pesan yang akan ditampilkan jika kondisinya adalah |
Exists(Int32, Int32, Predicate<Int32>) |
Menentukan apakah pengujian yang ditentukan benar untuk bilangan bulat apa pun dalam rentang bilangan bulat. |
Exists<T>(IEnumerable<T>, Predicate<T>) |
Menentukan apakah elemen dalam kumpulan elemen ada dalam fungsi. |
ForAll(Int32, Int32, Predicate<Int32>) |
Menentukan apakah kondisi tertentu valid untuk semua bilangan bulat dalam rentang tertentu. |
ForAll<T>(IEnumerable<T>, Predicate<T>) |
Menentukan apakah semua elemen dalam koleksi ada dalam fungsi. |
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. |
OldValue<T>(T) |
Mewakili nilai sebagaimana adanya di awal metode atau properti. |
Requires(Boolean) |
Menentukan kontrak prasyarat untuk metode atau properti penutup. |
Requires(Boolean, String) |
Menentukan kontrak prasyarat untuk metode atau properti penutup, dan menampilkan pesan jika kondisi untuk kontrak gagal. |
Requires<TException>(Boolean) |
Menentukan kontrak prasyarat untuk metode atau properti penutup, dan memberikan pengecualian jika kondisi untuk kontrak gagal. |
Requires<TException>(Boolean, String) |
Menentukan kontrak prasyarat untuk metode atau properti penutup, dan melemparkan pengecualian dengan pesan yang disediakan jika kondisi untuk kontrak gagal. |
Result<T>() |
Mewakili nilai pengembalian metode atau properti. |
ValueAtReturn<T>(T) |
Mewakili nilai |
Acara
ContractFailed |
Terjadi ketika kontrak gagal. |