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

#6 Pedro
10/04/2007 - 15:30 | Informe spam
En Visual Foxpro yo hacia:

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



if (miFormulario.MiObjeto != null)
... el objeto ya existe





Bueno esa es la mejor aproximacion a lo que quiero, aunque me dio trabajo
expresarme:(. Solo que en VFP podia hacerlo aunque no existiese siquiera
"el puntero" MiObjeto. Veo que en C# tengo al menos que tener el objeto
definido aunque no se haya hecho el New MiClase() correspondiente.
Respuesta Responder a este mensaje
#7 Juan Diego Bueno
10/04/2007 - 15:46 | Informe spam
On 10 abr, 15:30, "Pedro" wrote:
>>En Visual Foxpro yo hacia:

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

> if (miFormulario.MiObjeto != null)
> ... el objeto ya existe

Bueno esa es la mejor aproximacion a lo que quiero, aunque me dio trabajo
expresarme:(. Solo que en VFP podia hacerlo aunque no existiese siquiera
"el puntero" MiObjeto. Veo que en C# tengo al menos que tener el objeto
definido aunque no se haya hecho el New MiClase() correspondiente.



Siempre te quedará el recurso de usar el patrón singleton y así tener
como mucho un ejemplar de la clase form que necesites (si es eso lo
que necesitas). Para ver el uso del singleton con formularios, busca
DefInstance en este mismo grupo

Saludos
Respuesta Responder a este mensaje
#8 Alfredo Novoa
10/04/2007 - 15:51 | Informe spam
On Tue, 10 Apr 2007 09:30:56 -0400, "Pedro" wrote:


En Visual Foxpro yo hacia:

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



if (miFormulario.MiObjeto != null)
... el objeto ya existe





Bueno esa es la mejor aproximacion a lo que quiero, aunque me dio trabajo
expresarme:(. Solo que en VFP podia hacerlo aunque no existiese siquiera
"el puntero" MiObjeto. Veo que en C# tengo al menos que tener el objeto
definido aunque no se haya hecho el New MiClase() correspondiente.



Si no sabes como se llama la variable puntero en tiempo de compilación
puedes usar la reflexión.


Saludos
Respuesta Responder a este mensaje
#9 Alberto Poblacion
10/04/2007 - 15:53 | Informe spam
"Alfredo Novoa" wrote in message
news:
Primero "instanciar" e "instanciado" no existen en español, y no está



Cierto, en el diccionario de la RAE no está, pero la pregunta original
era "Saber si un objeto esta instanciado". Responder a la pregunta
simplemente diciendo que esa palabra no existe es bastante poco útil para el
que realiza la pregunta. Y ya puestos a contestarla, ¿por qué no usar en la
respuesta el mismo término que utilizó el autor original, aunque sea un
barbarismo derivado del inglés "instance"?


Y segundo, no hay ningún estandar sobre lo que significa objeto, así
que alguien podría perfectamente decir que en:

string s = null;

"s" es un objeto no inicializado. Que creo que es a lo que se refiere



Justo, "s" es lo que en mi explicación yo he llamado "una referencia a
un objeto", y efectivamente le decía que si así es como lo tiene, podía
compararlo con null.

El afán de diferenciar entre la referencia y el objeto en sí se debe a
que si haces por ejemplo:
string s="Pepe";
string t=s;
entonces tenemos dos referencias, "s" y "t", que apuntan al mismo objeto
("Pepe") del cual solo existe una instancia en memoria. Es solo una cuestión
de nomenclatura, pero de alguna forma hay que distinguir entre las dos
cosas. Por ejemplo, ¿qué pasa si ahora hacemos s=null;? ¿Está instanciado el
objeto? "Pepe" sigue en memoria, y se puede alcanzar a través de la
referencia "t", a pesar de que s vale null. Si a "s" y "t" les llamamos
objetos, igual que a "Pepe", se vuelve muy complejo expresar a qué nos
estams refiriendo realmente cuando hablamos de estas cosas. No tengo
inconveniente en llamarles objetos si lo crees oportuno, pero pienso que
resulta más práctico hacer la distinción entre referencias y objetos.
Respuesta Responder a este mensaje
#10 Hector
10/04/2007 - 16:21 | Informe spam

Cierto, en el diccionario de la RAE no está, pero la pregunta original
era "Saber si un objeto esta instanciado". Responder a la pregunta
simplemente diciendo que esa palabra no existe es bastante poco útil para
el que realiza la pregunta. Y ya puestos a contestarla, ¿por qué no usar
en la respuesta el mismo término que utilizó el autor original, aunque sea
un barbarismo derivado del inglés "instance"?






"Instanciar" no existe en castellano igual que "Accesar" no existe tampoco.
Debe haber muchas mas palabras que son muy usadas en informatica (y
especificamente en la programacion) que vienen del ingles y no existen en
castellano.
Ahora bien, son globalmente aceptadas como parte de la jerga tecnica de la
informatica. Pienso que en otras profesiones pasa igual.
En resumen, la verdad que no veo tanta complicacion que un compañero haga
una pregunta usando ese termino, estoy seguro que la mayoria entendimos a
que el se referia aunque no lo expresara tecnicamente correcto.
No seamos tan estrictos con la gente que quiere aprender.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida