Está en la página 1de 4

Los espacios de nombres son un modo sencillo y muy eficaz de tener absolutamente todas las

clases perfectamente organizadas, tanto las que proporciona el .NET Framework como las que
podamos escribir nosotros. Podemos verlo verdaderamente claro con echar un simple vistazo
al explorador de objetos de Visual Studio.NET

Las ventajas principales de estos espacios de nombres son su fuerte estructuración y, sobre
todo, la posibilidad de usar varias clases distintas con el mismo nombre en un mismo programa
si los espacios de nombres son diferentes.

Definir un espacio de nombres es de lo más sencillo:


 
namespace NISUNavegacionEspacial
{
    // Aquí van las clases del espacio de nombres
}

Los espacios de nombres organizan los objetos definidos en un ensamblado. Los ensamblados
pueden contener varios espacios de nombres, que a su vez pueden contener otros espacios de
nombres. Los espacios de nombres evitan las ambigüedades y simplifican las referencias
cuando se usan grupos de objetos grandes, como las bibliotecas de clases.

El espacio de nombres se define asi..

Namespace MyNamespace

Class [MyClass]

End Class '[MyClass]

End Namespace 'MyNamespace

un espacio de nombres es cualquier conjunto lógicamente relacionado de


nombres en que cada nombre debe ser único.

Un namespace debe asegurar la singularidad de sus miembros

Debe asegurase también que los nombres de los namespace sean diferentes, de esta manera
eliminaremos toda ambigüedad.

Namespace Autos1
Public Class Mustang
'....
'....
End Class
Public Class VW_Escarabajo
'....
'....
End Class
End Namespace

Namespace Autos2
Public Class Mustang
'....
'....
End Class
Public Class VW_Escarabajo
'....
'....
End Class
End Namespace

Este ejemplo define dos namespaces, Autos1 y Autos2, cada uno contiene dos nombres.

Dim ObjAuto1 As Autos1.VW_Escarabajo = New Autos1.VW_Escarabajo


'referencia a la clase VW_Escarabajo en Autos1.
Dim ObjAuto2 As Autos2.VW_Escarabajo = New Autos2.VW_Escarabajo
'referencia a la clase VW_Escarabajo en Autos2.

Para referirse a la clase VW_Escarabajo de una namespace particular, debe usarse nombres
namespace-calificados.También es posible que usted esté usando un namespace particular en
una parte del código fuente dado para la conveniencia. Esto hace al namespace especificado
un namespaces predefinido esencialmente para el archivo de la fuente. Entonces no hay
ningún requisito adicional para calificar a los miembros del namespace particular, es decir no
será necesario especificarlo totalmente haciendo uso del identificador del namespace, a
menos que claro se exija para evitar la ambigüedad. A continuación un ejemplo:

Imports Autos1
'...
'...

Sub Main()
Dim ObjAuto1 As Mustang = New Mustang
'...
End Sub
En el siguiente ejemplo, un módulo de código llamado Cliente tiene
un Mainmétodo de punto de entrada que hace referencia a un método en
el módulo Stringer.dll creado en el paso 1.

C#Copiar
using System;
using myStringer;

class MainClientApp
{
// Static method Main is the entry point method.
public static void Main()
{
Stringer myStringInstance = new Stringer();
Console.WriteLine("Client code executes");
myStringInstance.StringerMethod();
}
}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using TypeEquivalenceInterface;

using System.Reflection;

namespace TypeEquivalenceClient

class Program

static void Main(string[] args)

Assembly sampleAssembly = Assembly.Load("TypeEquivalenceRuntime");

ISampleInterface sampleClass =

(ISampleInterface)sampleAssembly.CreateInstance("TypeEquivalenceRuntime.SampleClass");

sampleClass.GetUserInput();
Console.WriteLine(sampleClass.UserInput);

Console.WriteLine(sampleAssembly.GetName().Version.ToString());

Console.ReadLine();

También podría gustarte