PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Presentación
  • Referencias bajas y referencias fuertes
  • Ejemplo de referencias
  • Fuerte reference
  • Referencia baja
  • Destructor forzado
  • Equivalencia
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Gestión avanzada de instancias de clase
Presentación
La gestión avanzada de instancias se utiliza para elegir el modo de tomar reference. Esta elección tiene un impacto directo en la liberación de los objetos de clase: dependiendo de la toma seleccionada de reference, el "Destructor" no será llamado al mismo tiempo.
Hay dos modos disponibles para tomar reference:
  • el bajo reference.
  • el fuerte reference.
Recordatorio: Tomar reference se usa para reference la misma área de datos que el elemento fuente. Por ejemplo, dos variables apuntan al mismo objeto de clase. Para reference un objeto, todo lo que tienes que hacer es usar el operador <-.
Importante: En cualquier caso, la llamada al destructor puede ser forzada por la palabra clave "Delete".
Versiones 17 y posteriores
AndroidUniversal Windows 10 AppJava La gestión de referencias sólidas ya está disponible.
AndroidJava La gestión de las referencias bajas ya está disponible.
Nueva funcionalidad versión 17
AndroidUniversal Windows 10 AppJava La gestión de referencias sólidas ya está disponible.
AndroidJava La gestión de las referencias bajas ya está disponible.
AndroidUniversal Windows 10 AppJava La gestión de referencias sólidas ya está disponible.
AndroidJava La gestión de las referencias bajas ya está disponible.
Versiones 21 y posteriores
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Referencias bajas y referencias fuertes
Hay dos tipos disponibles para tomar reference:
  • The strong reference (by Default): En este caso, el objeto de clase sólo se liberará cuando se liberen todas las referencias de objeto.
  • The low reference: En este caso, los objetos se liberarán automáticamente según su alcance (incluso si se ha tomado un reference global sobre estos objetos). El bajo reference debe ser especificado durante la instanciación dinámica del objeto que toma reference.
    Universal Windows 10 App La gestión de las referencias bajas no está disponible.
To especificar un reference bajo, usar la siguiente sintaxis:
Reference is dynamic object Class1, weak
o:
Reference is dynamic object Class1 <weak>
Observación: La siguiente sintaxis se usa para forzar la toma de bajo reference para todos los objetos:
ExecutionMode(ForceDestructorNonDynamicObject)
Atención: Este modo de funcionamiento es global para toda la aplicación y puede interferir con el modo de funcionamiento de los componentes.
Ejemplo de referencias

Fuerte reference

Al final de la Procedure, el objeto "MiObjeto" es not liberado (el destructor se llama not). El objeto "MyObject" se liberará cuando se libere "GlobalReference".. Por lo tanto, "MyObject" se liberará cuando se cierre la ventana.
// Global declarations of the window: dynamic instantiation of Class1 object
GlobalReference is dynamic object Class1
// Local procedure of the window
PROCÉDURE LocalWindowProcedure()

// Instantiate a Class1 object
MyObject is object Class1

// Taking strong reference on the MyObject object.
GlobalReference <- MyObject

Referencia baja

Al final de la Procedure, el objeto "MiObjeto" se libera (se llama destructor) y "Referencia Global" es set a NULL.
// Global declarations of the window: dynamic instantiation of Class1 object
GlobalReference is dynamic object Class1, weak
// Local procedure of the window
PROCÉDURE LocalWindowProcedure()

// Instantiate a Class1 object
MyObject is object Class1

// Taking low reference on the MyObject object.
GlobalReference <- MyObject
Destructor forzado
Tiene la capacidad de forzar la llamada al destructor (liberar el objeto) incluso si un fuerte reference fue tomado en este objeto.
La siguiente sintaxis se usa para forzar la llamada al destructor:
// The destructor will be called at the end of variable scope
// (even if a strong reference was taken on this object)
MyObject is object Class1, force Destructor
o:
// The destructor will be called at the end of variable scope
// (even if a strong reference was taken on this object)
MyObject is object Class1 <force Destructor>

Universal Windows 10 App Esta funcionalidad no está disponible.

Equivalencia

los siguientes códigos (ejemplo 1 y ejemplo 2) son equivalentes. En ambos casos, el objeto será liberado al final de la Procedure.
Ejemplo 1:
// Global declarations of the window
// Dynamic instantiation of a Class1 object
GlobalReference is dynamic object Class1, weak
// Local procedure of the window
PROCÉDURE LocalWindowProcedure()

// Instantiate a Class1 object
MyObject is object Class1

// Taking low reference on the MyObject object.
GlobalReference <- MyObject
Ejemplo 2:
// Global declarations of the window
// Dynamic instantiation of a Class1 object
GlobalReference is dynamic object Class1
// Local procedure of the window
PROCÉDURE LocalWindowProcedure()

// Instantiate a Class1 object
MyObject is object Class1, force Destructor

// Taking low reference on the MyObject object.
GlobalReference <- MyObject
Versión mínima requerida
  • Versión 16
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario