Puede Una Instancia De Una Clase Suicidarse?


Ir a la página 1, 2  Siguiente

Objetivo: Puede Una Instancia De Una Clase Suicidarse?
Supongamos que tengo una clase cualquiera clsPerro , creo una nueva instancia de la misma:

' en alguna parte
Public batuque as New clsPerro("La vida es muy complicada")

batuque.Pensar()


y dentro de la clase clsPerro



Public Freud as String

Public Sub _New(pensamiento as String)
Freud = pensamiento
End

Public Sub Pensar()

If Freud = "La vida es muy complicada" Then ??????????? <--- Cual seria el codigo para matar la instancia dentro de si misma??
End

última edición por tercoIDE el Lunes, 20 Abril 2020, 16:43; editado 1 vez
Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
No habra un kill como existe en procesos?


Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?

última edición por vuott el Martes, 21 Abril 2020, 01:08; editado 3 veces
Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
yo creo que si pero no por si misma sino despertando a otra clase que la asesina, jajaja no se , baje el código y la pregunta a ver que puedo sacar, saludos.

Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
Gracias Vuott
El codigo funciona pero solo si la clase sabe su nombre y donde vive. Pero como es una clase instanciada, no lo sabe.

Voy a apelar a un metodo mas elegante
' clsPerro
Public KillMeSoftly as Boolean = False
Public Freud as String

Public Sub _New(pensamiento as String)
Freud = pensamiento
End

Public Sub Pensar()

If Freud = "Las perras me ignoran" then Me.KillMeSoftly = True

End



en Main

' en alguna parte
Public batuque as New clsPerro("La vida es muy complicada")


Public Sub Main()

batuque.Pensar()

If batuque Then Message("Pero todavia estoy vivo")

batuque.Freud = "Las perras me ignoran"

batuque.Pensar()

If batuque.KillMeSoftly Then batuque = Null

If Not batuque Then Message("Me mataron")

Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
tercoIDE escribió:  
Gracias Vuott
El codigo funciona pero solo si la clase sabe su nombre y donde vive. Pero como es una clase instanciada, no lo sabe.

Sì, estoy totalmente de acuerdo; por eso yo borré aquel código en mi post.

Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
tercoIDE escribió:  
Voy a apelar a un metodo mas elegante

Bueno, pero tambien en este caso el código necesario para la destrucción del Objeto (es decir: .... = Null) está en el Módulo Principal y no en la Clase Secundaria.
En cambio, me parece que deseas una orden de destrucción dentro de la Clase Secundaria.

última edición por vuott el Martes, 21 Abril 2020, 19:21; editado 2 veces
Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
vuott escribió:  
tercoIDE escribió:  
Voy a apelar a un metodo mas elegante

Bueno, pero tambien en este caso el código necesario para la destrucción del Objeto (es decir: .... = Null) está en el Módulo Principal y no en la Clase Secundaria.
En cambio, me parece que deseas una orden de destrucción dentro de la Clase Secundaria.


Si, eso era el objetivo inicial, pero encontre un workaround para resolver el problema.

Tal vez haciendo un Poke &Objeto, 000000 a la direccion del objeto funcione, pero no estoy seguro si se puede hacer tal cosa de bajo nivel.

Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
Busqué esta solución, que es, sì, ahora universal, pero no me gusta, no me gusta, no me gusta:

Modulo principal:
Private cl As New Class1


Public Sub Main()

cl = cl.Delete(cl)

If Not Object.IsValid(cl) Then Error.Raise("Objeto inválido ! Dirección: &h" & Hex(Object.Address(cl), 8))

End



Clase secundaria "Class1.class":
Public Function Delete(c As Class1) As Class1

c = Null

Return c

End


Public Sub _free()

End

última edición por vuott el Martes, 21 Abril 2020, 23:23; editado 1 vez
Perfil MP  
Objetivo: Re: Puede Una Instancia De Una Clase Suicidarse?
tercoIDE escribió:  
Tal vez haciendo un Poke &Objeto, 000000 a la direccion del objeto funcione, pero no estoy seguro si se puede hacer tal cosa de bajo nivel.

De bajo nivel nosotros podemos alterar fácilmente la estructura interna principal de la Clase , pero causaríamos el crash del programa... es como decir: "Muera Sansón con los Filisteos !".

última edición por vuott el Martes, 21 Abril 2020, 23:38; editado 4 veces
Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.2781s (PHP: -56% SQL: 156%)
Consultas SQL: 27 - Debug off - GZIP Activado