Aracılığıyla paylaş


Sınıflar (F#) bağlarında olanak sağlar

Ö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ıflar (F#) bağlarında yapın

Bağlar (F#) olanak sağlar

Diğer Kaynaklar

Üyeler (F#)