PDF de programación - 1. Vb .Net 2005 - Clases, Eventos

Imágen de pdf 1. Vb .Net 2005 - Clases, Eventos

1. Vb .Net 2005 - Clases, Eventosgráfica de visualizaciones

Publicado el 8 de Octubre del 2019
998 visualizaciones desde el 8 de Octubre del 2019
97,0 KB
11 paginas
Creado hace 19a (01/01/2005)
1.1 Introducción.

La utilización normal de un objeto es la que se da cuando desde el programa se crea una instancia del

1. Clases, Eventos.

objeto y se usan los métodos del mismo.

programa, o dicho de otra forma, al revés.

Eso es lo habitual, pero se puede hacer al contrario, que sea el objeto el que active un evento del

Entonces lo que hay que ver es de que forma se puede definir un evento dentro de nuestro programa, o

de nuestra clase para que ésta sea la que llame al programa principal.

La definición de un evento se realiza utilizando la palabra reservada Delegate en la declaración del

procedimiento que se encarga de la gestión del evento.



Public Delegate Sub MiEvento (ByVal Argumento as Tipo)



1.2 Utilización del evento.

Vista la definición del evento dentro del código, su utilización ya depende de su declaración dentro de la

clase en la que deseemos utilizarla.

La utilización se divide en varios pasos.


Definición del evento.
Declaración del evento en la clase.
Escritura del procedimiento que alberga del código del evento.
Asociación del evento con el código que se va a ejecutar.
Lanzar el evento desde el sitio que proceda.


Definición


Public Delegate Sub MiEvento(ByVal MiArgu As Int16)


Declaración del evento en la clase.


' Declaración de uso del evento
Event Evento As MiEvento


Escritura del código del evento.


Sub CodigoDelEvento(ByVal Valor As Int16)
' Código a ejecutar en el evento,
' valor es el valor que se envía desde su generación
' con la instrucción RaiseEvent
Console.WriteLine("Texto desde eventillo {0} ", Valor)
End Sub


Asociación del evento al código del evento.


' Asociación del Evento de MiClase al código del evento.
AddHandler Evento, New MiEvento(AddressOf CodigoDelEvento)


En el ejemplo está en el constructor, New, pero también lo hemos probado en el Main y funciona.
Lanzar el evento.


RaiseEvent Evento(24)


Se han dado distintos valores en cada llamada, para poder observar desde donde se produce el evento.



1

En el ejemplo podemos ver el código completo.

Hemos probado a poner el código del evento en el Main, y también funciona, al final lo hemos dejado
todo en la clase porque parece que es como más organizado, cuando se aplique en la realidad, veremos que
es lo que debe ocurrir, si eso influye o no, pero lo anotamos.



' Definición del evento
Public Delegate Sub MiEvento(ByVal MiArgu As Int16)

Namespace Ambito
Public Class Ejemplo
' Declaración de uso del evento
Event Evento As MiEvento

Public Sub New()
' Asociación del Evento de MiClase al código del evento.
AddHandler Evento, New MiEvento(AddressOf CodigoDelEvento)
' Se lanza el evento, se provoca, en la generación
RaiseEvent Evento(22)
End Sub

Public Sub Inicio()
Console.WriteLine("Hola, lanzando el evento")
' Se lanza el evento, se provoca
RaiseEvent Evento(24)
End Sub

Public Sub Metodo()
Console.WriteLine("Hola desde método, lanzando otra vez el evento")
' Se lanza el evento, se provoca
RaiseEvent Evento(26)
End Sub

Sub CodigoDelEvento(ByVal Valor As Int16)
' Código a ejecutar en el evento,
' valor es el valor que se envía desde su generación
' con la instrucción RaiseEvent
Console.WriteLine("Texto desde el código del evento {0} ", Valor)
End Sub
End Class
End Namespace ' Ambito

Module Principal
Sub Main()
' Definición de la clase
Dim MiClase As Ambito.Ejemplo = New Ambito.Ejemplo
MiClase.Inicio()
MiClase.Metodo()
Console.ReadLine()
End Sub
End Module



Hay otra posibilidad, con el mismo resultado que antes, pero es más breve y quizás más clara.
Se quita la declaración de evento del principio, Public Delegate, y en la declaración del evento se realiza

directamente la declaración de los argumentos del mismo.



' Declaración de uso del evento
Event Evento(ByVal Valor As Int16)



2

En cuanto a la asociación, también hay un cambio, pero queda más claro, antes era


' Asociación del Evento de MiClase al código del evento.
AddHandler Evento, New MiEvento(AddressOf CodigoDelEvento)


Y ahora es


' Asociación del Evento de MiClase al código del evento.
AddHandler Evento, AddressOf CodigoDelEvento


Que es más sencillo y fácil de recordar.

El ejemplo final queda así.


' Definición del evento, ... desaparece ...
' Public Delegate Sub MiEvento(ByVal MiArgu As Int16)

Namespace Ambito
Public Class Ejemplo
' Declaración de uso del evento
Event Evento(ByVal Valor As Int16)

Public Sub New()
' Asociación del Evento de MiClase al código del evento.
AddHandler Evento, AddressOf CodigoDelEvento
' Se lanza el evento, se provoca, en la generación
RaiseEvent Evento(22)
End Sub

Public Sub Inicio()
Console.WriteLine("Hola, lanzando el evento")
' Se lanza el evento, se provoca
RaiseEvent Evento(24)
End Sub

Public Sub Metodo()
Console.WriteLine("Hola desde método, lanzando otra vez el evento")
' Se lanza el evento, se provoca
RaiseEvent Evento(26)
End Sub

Sub CodigoDelEvento(ByVal Valor As Int16)
' Código a ejecutar en el evento,
' valor es el valor que se envía desde su generación
' con la instrucción RaiseEvent
Console.WriteLine("Texto desde el código del evento {0} ", Valor)
End Sub
End Class
End Namespace ' Ambito

Module Principal
Sub Main()
' Definición de la clase
Dim MiClase As Ambito.Ejemplo = New Ambito.Ejemplo
MiClase.Inicio()
MiClase.Metodo()
Console.ReadLine()
End Sub
End Module


3

2. Como programar una clase.

2.1 Introducción.

No se puede negar que las clases son una evolución natural de la forma de programar, o sea que negar

la evidencia es del todo inútil

En principio es muy atrevido escribir un capitulo con éste tema, pero no se pretende decir a nadir como
tiene que hacer las cosas, sino simplemente indicar cuales son los criterios que se pueden seguir, o en que
orden se ejecutan los métodos y se usan las variables, propiedades, para a partir de ahí crear lo que podría ser
un orden más o menos adecuado, evidentemente desde lo que llevamos visto, el tiempo muchas veces te
desdice, o te reafirma.

Tampoco vamos a entrar en todas las posibilidades de las clases, sino se convertiría en un apartado muy

extenso, y la pretensión es la de sentar un punto de partida, para que a partir de ahí se siga progresando.

Tal como se ha desarrollado Studio Net el uso de clases escritas en otros lenguajes no debe resultar

ningún problema.
2.2 Utilización de las clases.

La utilización de las clases con los pequeños ejemplos que hemos visto quizás no queda muy clara, pero
hay que resaltar que su destino es el de crear objetos con las mismas, y que esos objetos son autónomos unos
con respecto a otros.


¿Cuando definir una clase?, en principio eso va a ser un problema, pero desde luego en Studio Net todo
esta agrupado o integrado por clases, otra cosa es el código que tengamos que escribir nosotros. Eso es otra
historia. Pero ya lo iremos aprendiendo con el tiempo.

En principio una clase sería práctico crearla cuando deseamos crear lo que anteriormente definíamos

como una librería.

También si deseamos crear una agrupación de código relacionado entre si, y que el fuente quede
protegido. Hay que tener en cuenta que las empresas de programación de esta forma pueden tener objetos
desarrollados que se reutilizan de una a otra aplicación, y que son o están depurados.

Una de las ventajas de las clases es que en contra de las librerías, o en algunos casos de las librerías,

según el lenguaje, el código no es accesible por el usuario de la misma.

Hay más casos en los que se puede definir una clase, como son las denominadas Interface, o las
equivalente a los tipos, que por cuestiones de rendimiento así se aconseja. Pero no es este el motivo principal
del tema, por lo que solo dejar constancia de dicha situación para que quien lo desee pueda buscar ampliar
dichos contenidos.
2.3 Como escribir una clase.

Cuando usamos una clase, lo que se hace es siempre seguir los siguientes pasos.


Declarar un objeto de esa clase.

Eso implica que se ejecute por defecto un método New, Constructor.
Por lo tanto los datos que nos interese controlar o las acciones a ejecutar
en esa fase deben estar escritas en ese método.

Asignar las características a las propiedades de la clase.

Pero puede que no se le asigne ninguna propiedad de las existentes.

Desarrollar los métodos de la clase.
Utilizar la clase con los objetos que se declaren de la misma.
Finalizar el uso del objeto.

Se ejecuta el método destructor de la clase, Finalize, y se liberan
recursos.


En base a esos pasos debemos programar el contenido de nuestra clase.

2.4 Declarar un objeto de esa clase.

Ese paso es el más sencillo de todos.


Dim Objeto as New ClaseDefinidaExistente


O bien se puede escribir



4

Dim Objeto as ClaseDefinidaExistente

Objeto = New ClaseDefinidaExistente


Cualquiera de las dos sintaxis es válida, aunque la más utilizada es la primera.

Ahora hay que escribir la clase, y hemos de escribir una clase eficiente y robusta contra el mal uso de la

misma.

escribamos.

Si por el motivo que fuese deseamos que no se pueda declarar un objeto de la clase que nosotros

escribimos sin que se ejecute el control adecuado en su creación hay que proteger el método New.

Para ello lo
  • Links de descarga
http://lwp-l.com/pdf16688

Comentarios de: 1. Vb .Net 2005 - Clases, Eventos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad