كائن تعبيرات (F#)

تعبير كائن هو تعبير الذي يقوم بإنشاء مثيل جديد من نوع كائن تم إنشاؤه بشكل حيوي، المجهول الذي هو استناداً نوع أساس exهوting الواجهة أو التعيين من واجهات.

// When typename is a class:
{ new typename [type-params] arguments with
   member-definitions
  [ additional-interface-definitions ]
}
// When typename is not a class:
{ new typename [generic-type-args] with
   member-definitions
  [ additional-interface-definitions ]
}

ملاحظات

في بناء الجملة السابق، typenameيمثل موجودة فئة نوع أو واجهة النوع. type-paramsتوضح هذه المقالة المعلمات الاختيارية نوع عام. argumentsتستخدم فقط للفئة أنواع، التي تتطلب معلمات الدالة الإنشائية. member-definitionsتجاوزات وظائف فئة الأساس، أو تطبيقات الأساليب التجريدية من فئة أساسية أو على الواجهة.

يوضح المثال التالي عدة أنواع مختلفة من كائن التعبيرات.

// This object expression specifies a System.Object but overrides the
// ToString method.
let obj1 = { new System.Object() with member x.ToString() = "F#" }
printfn "%A" obj1 

// This object expression implements the IFormattable interface.
let Delimiter(delim1 : string, delim2 : string ) = { new System.IFormattable with
                member x.ToString(format : string, provider : System.IFormatProvider) =
                  if format = "D" then delim1 + x.ToString() + delim2
                  else x.ToString()
           }
           
let obj2 = Delimiter("{","}");

printfn "%A" (System.String.Format("{0:D}", obj2))

// This object expression implements multiple interfaces.
type IFirst =
  abstract F : unit -> unit
  abstract G : unit -> unit
  
type ISecond =
  inherit IFirst
  abstract H : unit -> unit
  abstract J : unit -> unit

// This object expression implements an interface chain.
let Implementer() = { new ISecond with
                         member this.H() = ()
                         member this.J() = ()
                       interface IFirst with
                         member this.F() = ()
                         member this.G() = ()
                    }

استخدام تعابير كائن

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

راجع أيضًا:

موارد أخرى

مرجع لغة ب #