Sınıflardaki let Bağlamaları (F#)
Özel alanlar ve özel işlevler için F# sınıfları kullanarak tanımlayabilirsiniz let sınıf tanımında bağlar.
// Field.
[static] let [ mutable ] binding1 [ and ... binding-n ]
// Function.
[static] let [ rec ] binding1 [ and ... binding-n ]
Notlar
Önceki sözdizimi, sınıf başlık ve devralma bildirimlerinde sonra ancak herhangi bir üye tanımları önce görünür.Sözdizimidir gibi let bağlama sınıfları, ancak bir sınıfta tanımlanmış adları dışında sınıfına sınırlı bir kapsama sahip.A let özel alan veya işlevi; bağlama oluşturur veri veya işlevlerin genel olarak göstermek için bir özellik veya üye yöntem bildirmek.
A let , bağlama değil statik bir örneği olarak adlandırılan let bağlama.Örnek let nesne oluşturduğunda bağlamaları yürütme.Statik let bağlama türü ilk kullanılmadan önce yürütülecek garanti sınıfının statik başlatıcısı bir parçasıdır.
Kod örneğinde let bağlama, birincil yapıcı 's parametreleri kullanabilirsiniz.
Öznitelikler ve erişilebilirlik değiştiricileri, üzerinde verilmez let sınıflarında bağlar.
Aşağıdaki kod örnekleri çeşitli türlerde göstermek let sınıfları bağlarında.
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)
Çıktı aşağıdaki gibidir.
10 52 1 204
Alanları oluşturmak için alternatif yollar
Ayrıca val özel bir alan oluşturmak için anahtar sözcük.Kullanırken val anahtar sözcüğünü, alanı verilmemiş bir değer nesne oluşturulur, ancak bunun yerine varsayılan bir değerle başlatıldı.Daha fazla bilgi için bkz. Açık Alanlar: val Anahtar Sözcüğü (F#).
Ayrıca özel alanlar bir sınıfta üye tanımı kullanarak ve anahtar sözcüğünü ekleyerek tanımlayabilirsiniz private tanımı.Kodunuzu tekrar olmadan üye dönüştürün düşünüyorsanız kullanışlı olabilir.Daha fazla bilgi için bkz. Erişim Denetimi (F#).
Ayrıca bkz.
Başvuru
Sınıflardaki do Bağlamaları (F#)