Compartilhar via


Namespaces in Visual Basic

Namespaces organizam objetos definidos em um assembly.Módulos (assemblies) pode conter vários namespaces, que por sua vez pode conter outros espaços para nome.sistema autônomo espaços para nomes evitar ambigüidade e simplificam sistema autônomo referências ao usar grupos grandes de objetos, sistema autônomo bibliotecas de classe.

Por exemplo, a .NET Framework Define o ListBox classe na System.Windows.Forms namespace. O fragmento de código a seguir mostra como declarar uma variável usando o nome totalmente qualificado para esta classe:

Dim LBox As System.Windows.Forms.ListBox

Evitar colisões de nome

.NET Framework namespaces resolver um problema que às vezes chamado de poluição de namespace, na qual o desenvolvedor de uma biblioteca de classes é dificultado pelo uso de nomes semelhantes em outra biblioteca.Esses conflitos com os componentes existentes são chamados de conflitos de nome.

Por exemplo, se você criar uma nova classe chamada ListBox, você pode usá-lo dentro de seu projeto sem qualificação. However, if you want to use the .NET Framework ListBox class in the same project, you must use a fully qualified reference to make the reference unique.Se a referência não for exclusiva, Visual Basic produz um erro indicando que o nome é ambíguo. O exemplo de código a seguir demonstra como declarar esses objetos:

' Define a new object based on your ListBox class.
Dim LBC As New ListBox
' Define a new Windows.Forms ListBox control.
Dim MyLB As New System.Windows.Forms.ListBox

A ilustração a seguir mostra duas hierarquias de namespace, os dois contendo um objeto chamado ListBox.

Por padrão, todos sistema autônomo arquivos executável você criar com Visual Basic contém um namespace com o mesmo nome de seu projeto. Por exemplo, se você definir um objeto em um projeto chamado ListBoxProject, o arquivo executável ListBoxProject.exe contém um namespace chamado ListBoxProject.

Vários módulos (assemblies) podem usar a mesma namespace.Visual Basic trata-los sistema autônomo um único conjunto de nomes. Por exemplo, você pode definir classes para uma namespace chamado SomeNameSpace em um assembly chamado Assemb1e definir classes adicionais para o mesmo namespace de um assembly chamado Assemb2.

Nomes totalmente qualificados

Os nomes totalmente qualificados são referências de objeto são prefixadas com o nome do namespace em que o objeto é definido.Você pode usar objetos definidos em outros projetos se você criar uma referência à classe (escolhendo Adicionar referência from the Projeto menu) e, em seguida, use o nome totalmente qualificado para o objeto no seu código.O fragmento de código a seguir mostra como usar o nome totalmente qualificado para um objeto de outro projeto namespace:

Dim LBC As New ListBoxProject.Form1.ListBox

Nomes totalmente qualificados impedem a nomeação entra em conflito porque eles possibilitam o compilador para determinar o objeto que está sendo usado.No entanto, os próprios nomes podem obter longo e complicado.Para contornar esse problema, você pode usar o Imports demonstrativo para definir um alias — um nome abreviado que você pode usá-la no lugar de um nome totalmente qualificado.Por exemplo, o exemplo de código a seguir cria aliases para os dois nomes totalmente qualificados e usa esses aliases para definir dois objetos.

Imports LBControl = System.Windows.Forms.ListBox
Imports MyListBox = ListBoxProject.Form1.ListBox
Dim LBC As LBControl
Dim MyLB As MyListBox

Se você usar o Imports demonstrativo sem alias, você pode usar todos os nomes que fornecido namespace sem qualificação, eles são exclusivos para o projeto. Se seu projeto contém Imports instruções para namespaces que contêm itens com o mesmo nome, você deve qualificar totalmente esse nome ao usá-lo. Suponha, por exemplo, que seu projeto continha os seguintes dois Imports instruções:

' This namespace contains a class called Class1.
Imports MyProj1
' This namespace also contains a class called Class1.
Imports MyProj2

Se você tentar usar Class1 sem qualificar totalmente Visual Basic produz um erro indicando que o nome Class1 é ambíguo.

Declarações de nível de namespace

Em um namespace, você pode definir itens sistema autônomo módulos, interfaces, classes, delegados, enumerações, estruturas e outros espaços para nome.Não é possível definir itens sistema autônomo propriedades, procedimentos, variáveis e eventos no nível do espaço para nome.Esses itens devem ser declarados em recipientes sistema autônomo classes, estruturas ou módulos.

Observação:

Se você tiver definido uma hierarquia aninhada de espaços para nome, poderá ser bloqueado código dentro dessa hierarquia acessem classes dentro de outros espaços para nomes com o mesmo nome.Por exemplo, se você definir um namespace chamado System em um namespace chamado SpecialSpace, os membros do .NET estrutura System espaço para nome não estarão acessível, a menos que você-qualifica totalmente os membros com o Global palavra-chave. Para obter mais informações, consulte Global.

Consulte também

Tarefas

Como: Criar e usar assemblies

Conceitos

Conjuntos de Módulos (Assemblies)

Referências e o statement Imports

Referência

Global

Declaração Imports (Tipo e Namespace .NET)

ListBox

System.Windows.Forms

Outros recursos

Alterações na Linguagem para Usuários do Visual Basic 6.0