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.
Anda dapat menentukan bidang privat dan fungsi privat untuk kelas F# dengan menggunakan let pengikatan dalam definisi kelas.
Sintaksis
// Field.
[static] let [ mutable ] binding1 [ and ... binding-n ]
// Function.
[static] let [ rec ] binding1 [ and ... binding-n ]
Komentar
Sintaks sebelumnya muncul setelah judul kelas dan deklarasi warisan tetapi sebelum definisi anggota. Sintaksnya seperti pengikatan let di luar kelas, tetapi nama yang ditentukan dalam kelas memiliki cakupan yang terbatas pada kelas. Pengikatan let membuat bidang atau fungsi privat; untuk mengekspos data atau fungsi secara publik, mendeklarasikan properti atau metode anggota.
Pengikatan let yang tidak statis disebut pengikatan instans let . Pengikatan instans let dijalankan saat objek dibuat. Pengikatan statis let adalah bagian dari penginisialisasi statis untuk kelas , yang dijamin untuk dijalankan sebelum jenis pertama kali digunakan.
Kode dalam pengikatan instans let dapat menggunakan parameter konstruktor utama.
Pengubah atribut dan aksesibilitas tidak diizinkan pada let pengikatan di kelas.
Contoh kode berikut mengilustrasikan beberapa jenis let pengikatan dalam kelas.
type PointWithCounter(a: int, b: int) =
// A variable i.
let mutable i = 0
// A let binding that uses a pattern.
let (x, y) = (a, b)
// A private function binding.
let privateFunction x y = x * x + 2 * y
// A static let binding.
static let mutable count = 0
// A do binding.
do count <- count + 1
member this.Prop1 = x
member this.Prop2 = y
member this.CreatedCount = count
member this.FunctionValue = privateFunction x y
let point1 = PointWithCounter(10, 52)
printfn "%d %d %d %d" (point1.Prop1) (point1.Prop2) (point1.CreatedCount) (point1.FunctionValue)
Outputnya sebagai berikut.
10 52 1 204
Cara Alternatif untuk Membuat Bidang
Anda juga dapat menggunakan val kata kunci untuk membuat bidang privat. Saat menggunakan val kata kunci, bidang tidak diberi nilai saat objek dibuat, tetapi sebaliknya diinisialisasi dengan nilai default. Untuk informasi selengkapnya, lihat Bidang Eksplisit: Kata Kunci val.
Anda juga dapat menentukan bidang privat di kelas dengan menggunakan definisi anggota dan menambahkan kata kunci private ke definisi. Ini dapat berguna jika Anda berharap untuk mengubah aksesibilitas anggota tanpa menulis ulang kode Anda. Untuk informasi selengkapnya, lihat Access Control.