Saludos!.
|
|
#1 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 1.151
|
Que es el enlace en tiempo de ejecución y en tiempo de compilacion?
Saludos!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club |
|
|
|
|
|
#3 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 17
|
Enlace temprano: cuando utilizamos un objeto que instanciamos, que fue declarado como tal. Es decir, se le asigna el espacio en memoria necesario, en el código el compilador puede detectar errores antes de ejecutar el programa, en el caso de Visual Studio se le proporciona el autocomplemento de código:
miClase clase = new miClase (); clase.Abrir (); clase.nombre = "Hola"; Enlace Tardío: el uso que se le de al objeto solo empieza en tiempo de ejecución. Nos sirve cuando no tenemos la certeza de empezar a utilizar algun tipo. Es más susceptible a errores de tiempo de ejecución: object clase; clase = new miClase(); clase.Abrir(); Bueno, esa es la idea.. |
|
|
|
|
|
#4 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 1.151
|
Haber si entendí la idea... por ejemplo, generalmente defino una variable global para el formulario que estoy ejecutando de esta forma:
MiClase Mivariable; ........ 'Estos son los manejadores de eventos Private Sub Button1_Click(...) Handles Button1.Click MiVariable = new MiClase(); End Sub Ahí estoy aplicando el enlace en tiempo de ejecución, y si hubiera puesto en la primer linea MiClase MiVariable = new MiClase(); ahí estaría aplicando el enlace en tiempo de compilación. Es así?. Muchas gracias por tu respuesta. Xknown, excelente tu link, ya me voy a poner a leerlo, todavía no termino de leer el que me pasaste de reflection!, esta interesantisimo las cosas que se pueden hacer. Saludos, mucha suerte!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club |
|
|
|
|
|
#5 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 17
|
Hola
Veo que utilizas VB. Los tipos de enlace, se refieren al momento en el que se le estable la referecia entre la variable-objeto y el objeto. El enlace temprano ó de tiempo de compilación, es cuando nosotros declaramos una variable y le asignamos el tipo de dato que va a trabajar. Dim miObjeto as New MiClase Cuando hacemos esto, ya le indicamos al compilador que tipo va a manejar la variable "miObjeto", y que miembros son de esa clase. Lo que obtenemos es mayor velocidad en el código miObjeto.Nombre = "Adan" miObjeto.Guardar() Al utilizar VisualStudio, tendremos IntelliSense de las clases del CLR ó de nuestras propias clases. El enlace tardío ó de tiempo de ejecución establece las referencias entre la variable y el objeto cuando se esté ejecutando el programa. El código se vuelve más lento, y tenemos que colocar manejadores de errores, por que no se conoce el objeto que va a manjar la variable, pero con "Late Binding", tenemos mayor flexividad ya que con una misma variable podemos manejar la referencia a varios objetos. Por eso tenemos que declararla como el tipo generico "Object". Dim miObjeto as Object miObjeto = New Casa() miObjeto.Abrir() miObjeto.Dispose() 'se medio libera el objeto miObjeto = New Carro() miObjeto.Marca = "Ford" miObjeto.Acelerar(); miObjeto.Dispose() . . |
|
|
|
|
|
#6 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 1.151
|
jajaa este si que es un nuevo lenguaje...disculpa, no se en lo que estaba pensando...
[quote=mariano_donati] MiClase Mivariable; ........ 'Estos son los manejadores de eventos Private Sub Button1_Click(...) Handles Button1.Click MiVariable = new MiClase(); End Sub [quote] Entiendo completamente, el enlace, ya sea en tiempo de compilación o en tiempo de ejecución, se refiere cuando se asigna el tipo de dato al objeto. Entonces, mi ejemplo es válido? en ese ejemplo, estaría aplicando un enlace tardío?. Muchas gracias por tu paciencia. Saludos!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club |
|
|
|
|
|
#8 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 1.151
|
Claro, tenés razón. Ahora entiendo lo que me decías del intellisense. Muchas gracias metalkr.
Otra cosa, por eso me reía, porque hice cualquier cosa con el código que escribí para mostrarte el ejemplo. Como vi que me lo habías hecho en C#, entonces quise hacertelo en C#, que estoy aprendiendo su sintaxis en estos momentos, pero como estoy tan metido con VB, entonces el manejador de eventos lo hice con la sintaxis de VB. No fue para confundir, simplemente fue algo automático. Mil gracias metalkr por tu explicación. Saludso!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club |
|
|
|