Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 02-dic-2005, 14:45   #1 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.151
Que es el enlace en tiempo de ejecución y en tiempo de compilacion?

Bueno simplemente eso, tengo esa duda. Precisamente el enlace entre que cosas se hace en tiempo de compilación o de ejecución?
Saludos!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club
mariano_donati está desconectado   Responder Citando
Antiguo 02-dic-2005, 20:50   #2 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.249
http://msdn.microsoft.com/library/de...netchapt05.asp
(Reflection and Late Binding)

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
xknown está desconectado   Responder Citando
Antiguo 03-dic-2005, 04:40   #3 (permalink)
metalkr ha deshabilitado el karma
 
Avatar de metalkr
 
Fecha de Ingreso: julio-2005
Mensajes: 17
Pregunta

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..
metalkr está desconectado   Responder Citando
Antiguo 03-dic-2005, 08:42   #4 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
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
mariano_donati está desconectado   Responder Citando
Antiguo 03-dic-2005, 19:44   #5 (permalink)
metalkr ha deshabilitado el karma
 
Avatar de metalkr
 
Fecha de Ingreso: julio-2005
Mensajes: 17
Parpadear

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()
.
.
metalkr está desconectado   Responder Citando
Antiguo 04-dic-2005, 07:03   #6 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
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
mariano_donati está desconectado   Responder Citando
Antiguo 04-dic-2005, 08:02   #7 (permalink)
metalkr ha deshabilitado el karma
 
Avatar de metalkr
 
Fecha de Ingreso: julio-2005
Mensajes: 17
Si entendiste, pero sigues aplicando el enlace temprano. Igual no confundas la sintáxis de vb.net y c#
metalkr está desconectado   Responder Citando
Antiguo 04-dic-2005, 08:15   #8 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
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
mariano_donati está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 06:27.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93