Aracılığıyla paylaş


Ad alanlarını (F#)

Bir ad alanı, kod alanlara ilgili işlevlerin bir program öğeleri gruplandırma için bir ad eklemek etkinleştirerek düzenlemenizi sağlar.

namespace [parent-namespaces.]identifier

Notlar

Bir ad alanında kodu yerleştirmek istiyorsanız, dosyayı ilk bildiriminde ad alaný bildirmelidir. Tüm dosya içeriğini sonra ad alanının bir parçası haline gelir.

Ad alanları doğrudan değerleri ve işlevler içeremez. Bunun yerine, değerlerin ve işlevlerin modüllerde yer gerekir ve modülleri ad alanlarýna dahil edilir. Ad türleri, modülleri içerebilir.

Ad alanları açıkça namespace anahtar sözcüğü ile birlikte veya dolaylı olarak bir modül bildirirken bildirilebilir. Bir ad alanını açıkça bildirmek için ad alanı adı ad alanı anahtar sözcüğünü kullanın. Aşağıdaki örnek bir türü ve bu ad alanına dahil bir modül Widgets bir ad alanını tanımlayan bir kod dosyasını göstermektedir.

namespace Widgets

type MyWidget1 =
    member this.WidgetName = "Widget1"

module WidgetsModule =
    let widgetName = "Widget2"

Dosyanın tüm içeriğini bir modülde, da ad örtülü olarak kullanarak bildirebilirsiniz module anahtar sözcüğünü ve yeni ad alanı adı tam Modül adı sağlama. Aşağıdaki örnek, bir ad alanını tanımlayan bir kod dosyasını gösterir Widgets ve bir modül WidgetsModule, bir işlev içerir.

module Widgets.WidgetModule

let widgetFunction x y =
   printfn "%A %A" x y

Aşağıdaki kod önceki kodun eşdeğerdir, ancak yerel modül bildirimi modüldür. Bu durumda, ad alanı kendi satırında görünmesi gerekir.

namespace Widgets

module WidgetModule =

    let widgetFunction x y =
        printfn "%A %A" x y

Aynı dosyada bir veya daha fazla ad içinde birden fazla modül istenirse, yerel modül bildirimleri kullanmanız gerekir. Yerel modül bildirimleri kullandığınızda, nitelikli ad modül bildirimleri içinde kullanamazsınız. Aşağıdaki kod, bir ad alaný bildirimi ve iki yerel modül bildirimleri içeren bir dosyayı gösterir. Bu durumda, modülleri doğrudan ad boşluğunda bulunan; dosyayla aynı ada sahip yok örtülü olarak oluşturulmuş modülü vardır. Diğer kod dosyasında gibi bir do modülü üye alabilmek gereksinim duyduğunuz bağlama, ad alanında var, ancak iç modül olduğundan, widgetFunction modül adını kullanarak.

namespace Widgets

module WidgetModule1 =
   let widgetFunction x y =
      printfn "Module1 %A %A" x y
module WidgetModule2 =
   let widgetFunction x y =
      printfn "Module2 %A %A" x y

module useWidgets =

  do
     WidgetModule1.widgetFunction 10 20
     WidgetModule2.widgetFunction 5 6

Bu örnek çıktısı aşağıdaki gibidir.

Module1 10 20
Module2 5 6

Daha fazla bilgi için bkz. Modüller (F#).

İç içe geçmiş ad alanları

İç içe geçmiş bir ad alanı oluşturduğunuzda, tam olarak nitelemek gerekir. Aksi takdirde, yeni bir en üst düzey ad oluşturun. Girintileme, ad alanı bildirimi göz ardı edilir.

Aşağıdaki örnek, iç içe geçmiş bir ad alanını bildirirsiniz gösterilmiştir.

namespace Outer

    // Full name: Outer.MyClass
    type MyClass() =
       member this.X(x) = x + 1

// Fully qualify any nested namespaces.
namespace Outer.Inner

    // Full name: Outer.Inner.MyClass
    type MyClass() =
       member this.Prop1 = "X"

Dosyaları ve derlemeler ad alanları

Ad birden çok dosyayı tek bir proje ya da derleme yayılabilir. Bu terim ad alanının parçası tek bir dosya içine dahil bir ad alanının parçası açıklar. Ad birden çok derleme de kapsayabilir. Örneğin, System ad alanı içeren bütün .NET Framework, yüklediði yayılan ve çok sayıda iç içe geçmiş ad alanlarını içerir.

Genel ad alanı

Önceden tanımlanmış ad alanı kullanmak global adlarını koymak.net en üst düzey ad.

namespace global

type SomeType() =
    member this.SomeMember = 0

Genel düzey başvurmak için de kullanılabilir.Diğer ad alanları ile ad çakışmaları çözmek için net ad alanýnda bulunur, örneğin.

global.System.Console.WriteLine("Hello World!")

Ayrıca bkz.

Başvuru

Modüller (F#)

Diğer Kaynaklar

F# dil başvurusu