Está en la página 1de 7

FUNDAMENTOS DE LA POO.

PARTE 2
LANZAR EXCEPCIONES
Se pueden crear objetos de la clase Exception para lanzar excepciones en cualquier
momento y bajo cualquier condición.

Sintaxis
If (condicion) Then Throw New Exception

Ejemplo
La siguiente sentancia lanza una excepción de tipo genérico cuya propiedad Message se
corresponderá con la cadena que se ha pasado por parámetro en el momento de su
creación.
If numCuenta > 2 Or numCuenta < 1 Then
Throw New Exception("Introduzca un número entre 1 y 2")
Una vez lanzada la excepción es necesario capturarla de la manera convencional
mediante el uso de Catch.
……
Catch ex As Exception
Console.WriteLine(ex.Message) 'Muestra Introduzca un número entre 1 y 2
……

NAMESPACES
Un namespace o espacio de nombres es una herramienta que se utiliza para agrupar
clases, funciones, tipos de datos, etc que tengan alguna relación entre sí. Además un
espacio de nombres puede agrupar otros espacios de nombres.
La biblioteca de clases de .NET está organizada en espacios de nombres en una
disposición jerárquica. Todos los namespaces tienen acceso exclusivamente público.
El espacio de nombres System de la biblioteca de clases .NET contiene clases
fundamentales y clases base que definen tipos de datos de referencia y de valor de uso
frecuente, eventos y controladores de eventos, interfaces, atributos y excepciones de
procesamiento.

Sintasix
Namespace name | name.name
[componentes ]
End Namespace

Visual Basic .Net | 0BFUNDAMENTOS DE LA POO. PARTE 2 1


Para múltiples niveles de organización los namespaces pueden ser anidados:
Namespace NombreNamespaceA
Namespace NombreNamespaceB
Class NombreClase
Public Shared Function MiFuncion() As Tipo
…..
End Function
…..
End Class
End Namespace
End Namespace
El código anterior puede ser simplificado de la siguiente manera:
Namespace NombreNamespaceA.NombreNamespaceB
Class NombreClase
Public Shared Function MiFuncion() As Tipo
…..
End Function
…..
End Class
End Namespace
Para hacer referencia a una clase que está contenida en un espacio de nombres, debemos
utilizar el nombre del namespace separado por un punto de la clase y por otro del
método o propiedad de la clase a la que queramos hacer referencia.

Ejemplo
Para referenciar las clases de los ejemplos anteriores
NombreNamespaceA.NombreNamespaceB.NombreClase

Así debemos escribir System.Collections.Generic.Lista para utilizar la clase Lista


porque pertenece al namespace System.Collections.Generic.
Se puede utilizar la sentencia Imports para indicarle al compilador dónde buscar las
clases que estamos usando en nuestro código, para así ahorrarnos la escritura de los
espacios de nombres que habitualmente usamos, de esa forma podemos acortar el
código que tenemos que escribir. Las sentencias Imports se introducen como primera
línea del fichero y fuera del módulo o clase.

Sintasix
Imports [ aliasname = ] namespace o
Imports [ aliasname = ] namespace.element
Se debe tener en cuenta que
• Si no se especifica alias los elementos definidos en el namespace se
referencian sin prefijo y si no prefijados con el alias

Visual Basic .Net | 0BFUNDAMENTOS DE LA POO. PARTE 2 2


• Se pueden especificar varios Imports en un programa y deben de aparecer
antes de las sentencias Module y Class

Ejemplos
‘Sin alias
Imports System.Collections.Generic
Module Module1
……
Dim a As Lista = New Lista()
……
‘Con alias
Imports Str = Microsoft.VisualBasic.Strings
' Coloca Imports al comienzo de tu programa
Class MyClass1
Public Sub ShowHello()
MsgBox(Str.Left(“Hola", 5)) ' Visualiza "Hola"
End Sub
End Class

Ensamblado y Namespace
Por defecto, el ensamblado de un proyecto y el namespace tienen el mismo nombre
(para consultar esta situación analizar el contenido de las propiedades del proyecto), en
este caso el namespace se denomina espacio de nombres raíz del ensamblado
Si el todos los elementos del proyecto pertenecen al mismo namespace (=nombre del
ensamblado) esto implica que todas las clases del mismo proyecto pertenecen al mismo
ensamblado.
Si especificamos un namespace específico para una clase, entonces se considera que la
clase ya no pertenece directamente al espacio de nombres raíz del ensamblado, sino a
Espacio_de_nombre_raiz.Agenda
Namespace Agenda
Public Class Entrada
Public _telefono As String
Public Sub Marcar()
………
End Sub
End Class
End Namespace

Para llamar a la clase debemos incluir los nombres de los ensamblados o utilizar la
instrucción Imports

Visual Basic .Net | 0BFUNDAMENTOS DE LA POO. PARTE 2 3


Espacio_de_nombre_raiz.Agenda.Entrada
Se puede consultar y modificar el nombre del namespace del proyecto accediendo a las
propiedades del proyecto.

LA ESTRUCTURA WITH...END WITH


Cuando en un código se van hacer referencias a distintas propiedades y métodos de un
mismo objeto se puede utilizar la estructura With…End With para facilitar la escritura
del código.

Sintasix
With miObjeto
.elCampo
.laPropiedad
.elMétodo()
End With

Por ejemplo si queremos acceder a las propiedades de un objeto de la clase alumno


Dim miAlumno as Alumno=New Alumno()
With miAlumno
WriteLine(“El nombre es “ & .nombre)
WriteLine(“Los apellidos son “ & .apellidos)
.AsignarCursos(curso1, curso2)
End With
En lugar de
Dim miAlumno as Alumno=New Alumno()
WriteLine(“El nombre es “ & miAlumno.nombre)
WriteLine(“Los apellidos son “ & miAlumno.apellidos)
miAlumno. AsignarCursos (curso1, curso2)

CREAR LIBRERÍAS
Una librería o biblioteca es un paquete de software que contiene código que puede ser
reclamado desde otros programas. Una misma librería puede formar parte de distintos
programas y cada uno de ellos puede solicitar la ejecución del software que contienen.

Visual Basic .Net | 0BFUNDAMENTOS DE LA POO. PARTE 2 4


las librerías DLL Dynamic Linking Library (Bibliotecas de Enlace Dinámico) son
archivos que continen una o más clases compiladas y que pueden ser utilizadas por
otros programas ejecutables. La extensión de estos ficheros será dll.

Crear una librería DLL


Para crear una librería DLL se debe crear un proyecto del tipo Librería de clases. En
este proyecto se crean las clases que se desean incorporar a la librería.
Para crear el fichero DLL que contenga las clases del proyecto se debe compilar y,
como consecuencia de esta operación, se mostrará un mensaje de error por no tener
punto de entrada de ejecución. Este mensaje debe ser obviado.
Es conveniente ir a las propiedades del proyecto (Proyecto>Propiedades…) para
determinar:
• El nombre del ensamblado: se corresponde inicialmente con el nombre del
proyecto y será el nombre que tendrá el programa ejecutable y en este caso
la librería DLL.
• El nombre del espacio de nombres (namespace): será el namespace que
agrupará la clase que creamos.
Después de realizar estas operaciones se puede ir a la estructura de carpetas de la
solución y localizar la carpeta bin/Debug donde encontraremos el fichero
nombreEnsamblado.dll

Pasos para crear una clase llamada MiClase que se convertirá en DLL.
1) 2)

3) 4)

Public Class MiClase


5) 'Atributo privado
Private _nombre As String
'Propiedad pública del atributo _nombre
Public Property Nombre() As String
Get
Return _nombre
End Get
Set(ByVal value As String)
_nombre = value
End Set
End Property
'Método público que devuelve
'el nombre en mayúsculas
Public Function NombreMayusculas() As String
Return _nombre.ToUpper
End Function
End Class

Visual Basic .Net | 0BFUNDAMENTOS DE LA POO. PARTE 2 5


6)

7)
Guardar todo
Compilar
8)

9)

Llamar a una librería DLL


Desde el proyecto donde se quiera usar la librería, se debe agregar una referencia al
fichero DLL, para ello se debe
• Desde el Explorador de Soluciones pulsar el botón derecho y activar
Agregar referencia.
• Desde la pestaña Examinar de la ventana Agregar referencia se debe buscar
el fichero DLL y pulsar el botón Aceptar
La librería pertenece a un namespace, por ello debemos hacer referencia al mismo con
la instrucción Imports al inicio del módulo donde va a ser utilizada. A partir de
entonces podemos utilizar las clases de la librería.

Pasos para referenciar a la clase MiClase que está en una DLL.

1)

Visual Basic .Net | 0BFUNDAMENTOS DE LA POO. PARTE 2 6


2)

3)

Imports MiNamespace
4) Module Module1
Sub Main()
'Crear un objeto de la clase MiClase que está en la dll
Dim miNombre As MiClase = New MiClase()
Console.WriteLine("Introduzca su nombre")
'Utilizo la propiedad de MiClase
miNombre.Nombre = Console.ReadLine()
'Utilizo el método público de MiClase
Console.WriteLine("Mi nombre en mayúsculas es " _
& miNombre.NombreMayusculas)
Console.ReadLine()
End Sub
End Module

Visual Basic .Net | 0BFUNDAMENTOS DE LA POO. PARTE 2 7

También podría gustarte