Saber si un objeto esta instanciado

10/04/2007 - 13:42 por Pedro | Informe spam
Como saber si un objeto de determinado tipo (clase) se encuentra
instanciado?

Ej. public static bool ExisteObjeto(string cRutaObjeto)

//Ejemplo: bool ExisteMiobjeto=ExisteObjeto("Form1.MiObjeto")

Pedro

Preguntas similare

Leer las respuestas

#16 ANT1
10/04/2007 - 17:29 | Informe spam
Bueno, lo que pasa es que los objetos string son inmutables y no hay
forma de modificarlos. Si modificas x lo que modificas no es el
objeto, es la referencia, por lo que el objeto al que referencia 's'
sigue igual.

Si fuese con un objeto normal entonces si se modificaría.

Saludos



¿Y por que de esa diferencia entre objetos string y los demas?
Respuesta Responder a este mensaje
#17 Alfredo Novoa
10/04/2007 - 17:34 | Informe spam
On 10 Apr 2007 08:29:11 -0700, "ANT1" wrote:

Bueno, lo que pasa es que los objetos string son inmutables y no hay
forma de modificarlos. Si modificas x lo que modificas no es el
objeto, es la referencia, por lo que el objeto al que referencia 's'
sigue igual.

Si fuese con un objeto normal entonces si se modificaría.

Saludos



¿Y por que de esa diferencia entre objetos string y los demas?



Como diría RFOG por que C# es un aborto :-)

Es por que así les era más fácil implementar los strings.


Saludos
Respuesta Responder a este mensaje
#18 Juan Diego Bueno
10/04/2007 - 17:35 | Informe spam
On 10 abr, 17:29, "ANT1" wrote:
> Bueno, lo que pasa es que los objetos string son inmutables y no hay
> forma de modificarlos. Si modificas x lo que modificas no es el
> objeto, es la referencia, por lo que el objeto al que referencia 's'
> sigue igual.

> Si fuese con un objeto normal entonces si se modificaría.

> Saludos

¿Y por que de esa diferencia entre objetos string y los demas?



http://www.elguille.info/NET/cursoC...trega3.htm

Mira donde pone: Sistema de Tipos en C#

Saludos
Respuesta Responder a este mensaje
#19 Jose Camacho Vaca
10/04/2007 - 17:38 | Informe spam
El VARTYPE() de VFP no existe en C#, una de las cosas buenas del mundo de Fox
que no tiene .Net. Hay que tener paciencia, ya madurará. Yo no he
encontrado la forma de hacer lo que hace el VARTYPE(), por ejemplo si haces
una comprobación:

if (miFormulario.miVariableObjeto != null)
a veces no funciona, como el garbage collector no siempre funciona igual, y
te puede dar resultados inesperados. Y si nos metemos en programción de
patrones de diseño es mas trabajo. Espero que encuentres la solución.
Saludos.
José Camacho Vaca
Colima, MX


"Pedro" wrote:

Quizas no me exprese bien. Es para un ambiente runtime.

>> Como saber si un objeto de determinado tipo (clase) se encuentra
>> instanciado?
>>
>> Ej. public static bool ExisteObjeto(string cRutaObjeto)
>>
>> //Ejemplo: bool ExisteMiobjeto=ExisteObjeto("Form1.MiObjeto")
>
> Me temo que estás confundiendo la clase con el objeto. Un objeto por
> definición siempre está instanciado, sino no existe el objeto. Creo que la
> pregunta que haces es en realidad "Cómo saber si existe alguna instancia
> de una clase determinada".

Claro, mas o menos eso fue lo que quise preguntar solo que lo exprese mal.

>Ante la cual la respuesta es básicamente que "en general no se puede".
> Si solo creas en tu programa una única instancia (un solo objeto de esa
> clase) y siempre usas una variable concreta para guardar la referencia a
> ese objeto, entonces está instanciado siempre que la referencia no sea
> null. Incluso aunque la referencia sea null, el objeto podría seguir
> instanciado si el recogedor de basura todavía no lo ha destruido.
> Si no sigues ningún criterio y guardas las referencias en cualquier
> sitio, entonces la única forma de controlar las instancias es modificar el
> fuente de la clase para que siga un modelo de tipo "Fatoría de objetos" y
> el método-factoría junto con el Finalizador de la clase lleven
> internamente el control de todas las instancias creadas.
>

Realmente no voy tan lejos. Me explico con un ejemplo. Tengo una clase Form
y necesito desde uno de sus metodos preguntar (para usarse en runtime) si
dentro de ese form ya existe un objeto llamado MiObjeto (para el caso no me
interesa de que clase sea MiObjeto).
Uso esa informacion para tomar alguna decision en runtime dependiendo si el
objeto ya existe.

En Visual Foxpro yo hacia:

if VARTYPE(This.MiObjeto)<>"U" //"U"-Unknown...
ya el objeto existe



Pedro



Respuesta Responder a este mensaje
#20 Juan Diego Bueno
10/04/2007 - 17:39 | Informe spam
On 10 abr, 17:35, "Juan Diego Bueno" wrote:
On 10 abr, 17:29, "ANT1" wrote:

> > Bueno, lo que pasa es que los objetos string son inmutables y no hay
> > forma de modificarlos. Si modificas x lo que modificas no es el
> > objeto, es la referencia, por lo que el objeto al que referencia 's'
> > sigue igual.

> > Si fuese con un objeto normal entonces si se modificaría.

> > Saludos

> ¿Y por que de esa diferencia entre objetos string y los demas?

http://www.elguille.info/NET/cursoC...trega3.htm

Mira donde pone: Sistema de Tipos en C#



Ui, perdón por la gambaza porque encima String se considera un tipo
referencia... aceptaremos lo de aborto de RFOG (pero bueno, ya que
estás, lee sobre el tema y tal)

Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida