ترك للربط في فئات (F#)

You can define private حقول و private دالات for F# فئات بواسطة using let bindings في the فئة تعريف.

// Field.
[static] let [ mutable ] binding1 [ and ... binding-n ]

// Function.
[static] let [ rec ] binding1 [ and ... binding-n ]

ملاحظات

The السابق بناء الجملة appears بعد the فئة heading و توريث تصريحات but قبل أي عضو ملفات تعريف. The بناء الجملة هو مثل that of let bindings outside of فئات, but the أسماء defined في a فئة have a نطاق that هو limited إلى the فئة. A let ربط creates a private حقل أو دالة; إلى expose بيانات أو دالات publicly, declare a خاصية أو a عضو أسلوب.

letربط التي هو غير ثابتة هو استدعاء مثيل letربط. مثيل letينفذ عمليات الربط عندما يتم تاريخ الإنشاء الكائنات. ثابتة letالروابط جزء من مهيئ ثابتة للفئة، التي هو مضمون لينفذها قبل النوع هو المستخدم أولاً.

تعليمات برمجية داخل مثيل letروابط يمكن استخدم معلمات الدالة الإنشائية الأساسي.

سمات و إمكانية وصول ذوي الاحتياجات الخاصة معدلات غير مسموح في letروابط في فئات.

توضح الأمثلة تعليمات برمجية التالية أنواع متعددة من letروابط في فئات.

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)

الإخراج هو كما يلي.

10 52 1 204

طرق بديلة إلى إنشاء الحقول

يمكنك أيضا استخدام valالكلمة الأساسية إلى بإنشاء حقل خاص. عند استخدام valكلمة أساسية، الحقل هو عدم إعطاء القيمة عندما يتم تاريخ الإنشاء الكائن ولكن بدلاً من ذلك يتم تهيئة مع القيمة افتراضية. لمزيد من المعلومات، راجع حقول واضحة: قيمة كلمة أساسية (F#).

يمكنك أيضا تعريف الحقول الخاصة بفئة باستخدام تعريف عضو و إضافة كلمة أساسية privateإلى تعريف. قد يكون ذلك مفيداً إذا كنت تتوقع أن إلى تغيير الوصول من عضو دون إعادة كتابة التعليمة البرمجية الخاصة بك. لمزيد من المعلومات، راجع التحكم بالوصول (F#).

راجع أيضًا:

المرجع

قم بإجراء الربط في فئات (F#)

ترك للربط (F#)

المبادئ

الأعضاء (F#)