Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pengikatan do dalam definisi kelas melakukan tindakan saat objek dibangun atau, untuk pengikatan statis do , saat jenis pertama kali digunakan.
Sintaksis
[static] do expression
Komentar
Pengikatan do muncul bersama dengan atau setelah let pengikatan tetapi sebelum definisi anggota dalam definisi kelas.
do Meskipun kata kunci bersifat opsional untuk do pengikatan di tingkat modul, kata kunci tersebut tidak opsional untuk do pengikatan dalam definisi kelas.
Untuk konstruksi setiap objek dari jenis tertentu, pengikatan non-statis do dan pengikatan non-statis let dijalankan dalam urutan muncul dalam definisi kelas. Beberapa do pengikatan dapat terjadi dalam satu jenis. Pengikatan non-statis let dan pengikatan non-statis do menjadi isi konstruktor utama. Kode di bagian pengikatan non-statis do dapat mereferensikan parameter konstruktor utama dan nilai atau fungsi apa pun yang ditentukan di bagian let pengikatan.
Pengikatan non-statis do dapat mengakses anggota kelas selama kelas memiliki pengidentifikasi diri yang didefinisikan oleh as kata kunci dalam judul kelas, dan selama semua penggunaan anggota tersebut memenuhi syarat dengan pengidentifikasi mandiri untuk kelas.
Karena let pengikatan menginisialisasi bidang privat kelas, yang sering diperlukan untuk menjamin bahwa anggota berperilaku seperti yang diharapkan, do pengikatan biasanya dimasukkan setelah let pengikatan sehingga kode dalam do pengikatan dapat dijalankan dengan objek yang sepenuhnya diinisialisasi. Jika kode Anda mencoba menggunakan anggota sebelum inisialisasi selesai, InvalidOperationException akan dinaikkan.
Pengikatan statis do dapat mereferensikan anggota statis atau bidang kelas penutup tetapi bukan anggota atau bidang instans. Pengikatan statis do menjadi bagian dari penginisialisasi statis untuk kelas , yang dijamin untuk dijalankan sebelum kelas pertama kali digunakan.
Atribut diabaikan untuk do pengikatan dalam jenis. Jika atribut diperlukan untuk kode yang dijalankan dalam do pengikatan, atribut harus diterapkan ke konstruktor utama.
Dalam kode berikut, kelas memiliki pengikatan statis do dan pengikatan non-statis do . Objek memiliki konstruktor yang memiliki dua parameter, a dan b, dan dua bidang privat didefinisikan dalam let pengikatan untuk kelas . Dua properti juga ditentukan. Semua ini berada dalam cakupan di bagian pengikatan non-statis do , seperti yang diilustrasikan oleh baris yang mencetak semua nilai tersebut.
open System
type MyType(a: int, b: int) as this =
inherit Object()
let x = 2 * a
let y = 2 * b
do printfn "Initializing object %d %d %d %d %d %d" a b x y (this.Prop1) (this.Prop2)
static do printfn "Initializing MyType."
member this.Prop1 = 4 * x
member this.Prop2 = 4 * y
override this.ToString() =
System.String.Format("{0} {1}", this.Prop1, this.Prop2)
let obj1 = new MyType(1, 2)
Outputnya sebagai berikut.
Initializing MyType.
Initializing object 1 2 2 4 8 16