FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Paso de valores hacia propiedades
Mi curiosidad me tiene intrigado... pues yo no he notado diferencia entre el paso de valores de propiedades hacia las viarables privadas correspondientes. Verán.... cuando uno declara propiedades para una clase hce algo como:
Lo normal en un procedimiento Setxxxx es:
Hasta allí todo bien. Ahora supongamos que al setear el valor de la propiedad2, hay que cambiar el de propiedad1. Y es aquí donde tengo una curiosidad: ¿Es lo mismo hacer esto:
que esto otro?:
¿Se vé la diferencia? El primero se cambia en forma directa hacia la variable privada. El segundo hace que dispare el procedimiento SetPropiedad1. No hay error en el código... ¿Pero cual método es mejor? ¿Habrá algún efecto colateral el que pase (o no pase) el valor en forma directa hacia la variable privada? Por poner un ejemplo extremo: supongamos que hay 20 propiedades y que el cambio de una de ellas haga que se propage una serie de cambios en el resto... ¿se notará algún efecto? También estuve pensando de que internamente el compilador traduce a cada Propiedad := Valor por el SetPropiedad. Pero si uno omite la declaración de SetPropiedad.... ¿ahora.... en que quedamos? Bueno, espero que se me entienda... es una curiosidad que me viene picando desde hace tiempo. Saludos, |
#2
|
||||
|
||||
Como vos mismo escribiste en Propiedad2, el metodo set puede hacer algo mas que solo setear el valor de la propiedad, por lo que es preferible siempre hacerlo por el segundo metodo que expusiste. Siempre y cuando en el metodo Set de la propiedad 1 no llames a Propiedad2 de nuevo.
__________________
[Crandel] |
#3
|
||||
|
||||
Como bien dices hay que tener cuidado.
Si tienes un método "SetPropiedad2" es porque haces algo más que cambiar el valor a FPropiedad2. Si cambias el valor a Fpropiedad1 por la cara, te queda el resto de código sin sincronizar. Cuando al cambiar una propiedad en el método Set afecta a otras propiedades y no puedes usar "Propiedad1 := Fpropiedad2 div 2" porque entra en recursión las asignaciones, hay que crear un método aparte:
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
||||
|
||||
gracias
Muchas gracias Crandel y Lepe. Me han sacado una buena duda curiosa. Me pasa a veces de que en métodos Set hago FPropiedad := xxxx y en otras Propiedad := xxxx. Y esto se me hizo confuso. Y traté de analizar las posibles consecuencias que podrían afectar este pequeñisimo detalle:
[HUMOR] Cita:
Pero como sólo soy un simple novato, decidí hacer la pregunta a gente que sabe del tema. Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mi programa de facturación paso a paso | Delphitest | Varios | 234 | 04-11-2013 09:41:02 |
Como cambiar valores en la ventana "General" propiedades del sistema | JuanErasmo | API de Windows | 52 | 17-02-2012 17:42:20 |
ayuda paso a paso Shared Connection | eangeles | Providers | 0 | 09-11-2006 02:06:04 |
Novato (Paso a Paso de una consulta) | enecumene | Conexión con bases de datos | 2 | 29-05-2006 20:52:19 |
Como puedo Modificar los valores de las propiedades de un ejecutable | DML | Varios | 4 | 07-05-2003 21:39:03 |
|