Bueno simplemente eso, tengo esa duda. Precisamente el enlace entre que cosas se hace en tiempo de compilación o de ejecución?
Saludos!.
| |||
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!.
__________________ Add, never Remove |
| |||
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!.
__________________ Add, never Remove |
| ||||
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() . . |
| |||
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!.
__________________ Add, never Remove |
| |||
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!.
__________________ Add, never Remove |