قم باستيراد تصريحات: فتح كلمة أساسية (F#)

تعين استيراد إعلان وحدة نمطية أو مساحة الاسم عناصرها يمكنك مرجع دون استخدام اسم مؤهل بشكل كامل.

open module-or-namespace-name

ملاحظات

الرجوع إلى تعليمات برمجية باستخدام مساحة الاسم أو وحدة نمطية مسار مؤهل بشكل كامل في كل مرة يتم إنشاء تعليمات برمجية التي هو صعوبة في الكتابة والقراءة وصيانتها. بدلاً من ذلك، يمكنك استخدام openكلمة أساسية للوحدات النمطية المستخدمة بكثرة ومساحات الأسماء حيث عند الرجوع إلى عضو من تلك وحدة نمطية? أو مساحة الاسم، يمكنك استخدام نموذج قصير للاسم بدلاً من اسم مؤهل بشكل كامل. This keyword is similar to the using keyword in C#, using namespace in Visual C++, and Imports in Visual Basic.

يجب أن تكون وحدة نمطية? أو توفير مساحة الاسم في نفس مشروع أو المشاريع المشار إليها أو تجميع. إذا هو لا، يمكنك إضافة مرجع إلى مشروع أو استخدام -referenceالأمر -خطية خيار (أو الاختصار الخاص به، -r). لمزيد من المعلومات، راجع خيارات برنامج التحويل البرمجي (F #).

تصريح استيراد يوفر الأسماء الموجودة في تعليمات برمجية الذي يلي التصريح، تصل إلى إنهاء مساحة الاسم المضمنة، وحدة نمطية?، أو ملف.

عندما كنت استخدم تعريفات متعددة للاستيراد، يجب أن تظهر تشغيل أسطر منفصلة.

يلي تعليمات برمجية يظهر الاستخدام openالأساسية لتسهيل تعليمات برمجية.

// Without the import declaration, you must include the full
// path to .NET Framework namespaces such as System.IO.
let writeToFile1 filename (text: string) =
  let stream1 = new System.IO.FileStream(filename, System.IO.FileMode.Create)
  let writer = new System.IO.StreamWriter(stream1)
  writer.WriteLine(text)

// Open a .NET Framework namespace.
open System.IO

// Now you do not have to include the full paths.
let writeToFile2 filename (text: string) =
  let stream1 = new FileStream(filename, FileMode.Create)
  let writer = new StreamWriter(stream1)
  writer.WriteLine(text)

writeToFile2 "file1.txt" "Testing..."

المحول البرمجي F# عدم الإرسال الخطأ أو التحذير عند حدوث ambiguities عند حدوث نفس الاسم في فتح المزيد وحدة نمطية? أو مساحة الاسم. عند حدوث ambiguities، F# يعطي الأفضلية لوحدة نمطية أو مساحة الاسم أكثر تم فتحها مؤخرا. على سبيل المثال، في التعليمة البرمجية التالية: emptyيعني Seq.empty، على الرغم من emptyالموجود في كلا Listو Seqالوحدات النمطية.

open List
open Seq
printfn "%A" empty

Therefore, be careful when you فتح الوحدات النمطية أو مساحات الاسم such كـ List أو Seq that contain الأعضاء that have identical أسماء; instead, consider using the qualified أسماء. You should avoid أي situation في which the تعليمات برمجية هو dependent upon the ترتيب of the استيراد تصريحات.

مساحات الأسماء التي هل فتح بشكل افتراضي

Some مساحات الاسم are so frequently used في F# تعليمات برمجية that they are opened ضمنيا without the need of an explicit استيراد إعلان. The following جدول shows the مساحات الاسم that are فتح بواسطة الافتراضي.

مساحة الاسم

الوصف

Microsoft.FSharp.Core

يحتوي على أساسى F# نوع ملفات تعريف for built-في أنواع such كـ int و float.

Microsoft.FSharp.Core.Operators

يحتوي على أساسى arithmetic العمليات such كـ + و *.

Microsoft.FSharp.Collections

يحتوي على immutable مجموعة فئات such كـ List و Array.

Microsoft.FSharp.Control

يحتوي على أنواع for عنصر تحكم constructs such كـ lazy evaluation و غير متزامن workflows.

Microsoft.FSharp.Text

يحتوي على دالات for منسق IO, such كـ the printf دالة.

AutoOpen سمة

You can يطبق the AutoOpen سمة إلى an تجميع if you want إلى automatically فتح a مساحة الاسم أو وحدة نمطية? when the تجميع هو مشار إليها. You can also يطبق the AutoOpen سمة إلى a وحدة نمطية? إلى automatically فتح that وحدة نمطية? when the parent وحدة نمطية? أو مساحة الاسم هو opened. لمزيد من المعلومات، راجع فئة Core.AutoOpenAttribute (F #).

راجع أيضًا:

المرجع

مساحات الاسم (F#)

الوحدات النمطية (F#)

موارد أخرى

مرجع لغة ب #