Bagikan melalui


Contract Kelas

Definisi

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 false, mengikuti kebijakan eskalasi yang ditetapkan untuk penganalisis.

Assert(Boolean, String)

Memeriksa kondisi; jika kondisinya adalah false, mengikuti kebijakan eskalasi yang ditetapkan oleh penganalisis dan menampilkan pesan yang ditentukan.

Assume(Boolean)

Menginstruksikan alat analisis kode untuk mengasumsikan bahwa kondisi yang ditentukan adalah true, bahkan jika tidak dapat dibuktikan secara statis untuk selalu true.

Assume(Boolean, String)

Menginstruksikan alat analisis kode untuk mengasumsikan bahwa kondisi adalah true, bahkan jika tidak dapat terbukti secara statis selalu true, dan menampilkan pesan jika asumsi gagal.

EndContractBlock()

Menandai akhir bagian kontrak ketika kontrak metode hanya berisi prasyarat dalam if--thenthrow formulir.

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 false.

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 false untuk metode atau properti penutup, berdasarkan pengecualian dan kondisi yang disediakan.

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 out akhir (output) parameter saat kembali dari metode .

Acara

ContractFailed

Terjadi ketika kontrak gagal.

Berlaku untuk