UMA namespacefoi projetado para fornecer uma maneira de manter um conjunto de nomes separado de outro. Os nomes de classe declarados em um namespace não entrarão em conflito com os mesmos nomes de classe declarados em outro.
De acordo com a biblioteca MSDN, um namespace permite organizar o código em áreas de funcionalidade relacionada, permitindo que você anexe um nome a um agrupamento de elementos do programa.
Declaração de um namespace
Para organizar seu código em um namespace, você deve declarar o namespace como a primeira declaração no arquivo. O conteúdo de todo o arquivo passa a fazer parte do namespace.
namespace [parent-namespaces.]identifier
O exemplo a seguir ilustra o conceito -
Exemplo
namespace testing
module testmodule1 =
let testFunction x y =
printfn "Values from Module1: %A %A" x y
module testmodule2 =
let testFunction x y =
printfn "Values from Module2: %A %A" x y
module usermodule =
do
testmodule1.testFunction ( "one", "two", "three" ) 150
testmodule2.testFunction (seq { for i in 1 .. 10 do yield i * i }) 200
Quando você compila e executa o programa, ele produz a seguinte saída -
Values from Module1: ("one", "two", "three") 150
Values from Module2: seq [1; 4; 9; 16; ...] 200