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

#21 Alfredo Novoa
10/04/2007 - 17:40 | Informe spam
On 10 Apr 2007 08:28:27 -0700, "Juan Diego Bueno"
wrote:

Osea, que si lo que quieres es modificar un string (que creo que es lo
que en C# se llaman tipos-valor) tendrás que usar la cláusula ref:

void Imprimir(ref string X);

Así pasas la cadena por referencia, en vez de por valor, que es la
opción por defecto. De esta forma si podría cambiarte el valor la
función.



Si, pero lo que haces pasar la variable referencia por referencia :-)

El "objeto" original no se modifica sino que se pierde la referencia,
y si no hay más referencias entonces podrá ser reciclado por el
recolector de basura.

Eso dependiendo de lo que cada uno entienda por objeto, claro.


Saludos
Respuesta Responder a este mensaje
#22 Juan Diego Bueno
10/04/2007 - 17:47 | Informe spam
Si, pero lo que haces pasar la variable referencia por referencia :-)

El "objeto" original no se modifica sino que se pierde la referencia,
y si no hay más referencias entonces podrá ser reciclado por el
recolector de basura.

Eso dependiendo de lo que cada uno entienda por objeto, claro.

Saludos



Ya, es que es la chufla de tratar un tipo-referencia como tipo-valor
(a medias).

En el libro Professional C# explica algo como:

En el código:

string s1="una cadena";
string s2=s1;

Cuando se inicializa una cadena s1 con el valor "una cadena", un nuevo
objeto cadena es reservado en la memoria dinámica. Cuando se
inicializa s2, la referencia apunta a este mismo objeto, por lo que s2
también valdrá "una cadena". Sin embargo, cuando cambiamos el valor de
s1, en lugar de reemplazarse el valor original, se creará un nuevo
objeto en la memoria dinámica para el nuevo valor. La variable s2
todavía apuntará al objeto original, de manera que su valor se
mantiene inalterado

Saludos
Respuesta Responder a este mensaje
#23 Alfredo Novoa
10/04/2007 - 17:50 | Informe spam
On Tue, 10 Apr 2007 08:38:05 -0700, Jose Camacho Vaca
wrote:


if (miFormulario.miVariableObjeto != null)
a veces no funciona, como el garbage collector no siempre funciona igual, y
te puede dar resultados inesperados.



No es cierto. Si que funciona, lo que pasa es que tienes que conocer
el nombre de la variable en tiempo de compilación.


Saludos
Respuesta Responder a este mensaje
#24 Alfredo Novoa
10/04/2007 - 18:26 | Informe spam
On Tue, 10 Apr 2007 15:53:45 +0200, "Alberto Poblacion"
wrote:

"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.



Si lo es por que así puede volver a preguntar algo con sentido.

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"?



Pues por que es un barbarismo y por que es dificil saber que es lo que
puede querer decir.

Si lo traducimos del "espanglis" al español sería: ¿Está el objeto
ejemplarizado?

¿Y eso que rayos quiere decir?

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.



Ya, pero ¿Por qué no usar en la respuesta el mismo significado que
utilizó el autor de la pregunta? :-)

Una razón sería por que es igual de confusa y arbitraria una forma que
la otra.

"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.



Si, y además también podemos llamar objeto a la pareja variable
referencia y variable del montón, y también a la pareja valor
referencia y valor de la variable del montón.

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.



Si usamos los términos clásicos resulta mucho más sencillo y no hay
lugar para la confusión.

Vamos, que yo creo que lo mejor sería no usar nunca la palabra
"objeto" por que es un comodín que puede significar cualquier cosa.



Saludos
Respuesta Responder a este mensaje
#25 Alfredo Novoa
10/04/2007 - 18:33 | Informe spam
On Tue, 10 Apr 2007 10:21:50 -0400, "Hector" <@u.com> wrote:

"Instanciar" no existe en castellano igual que "Accesar" no existe tampoco.



"Accesar" es una monstruosidad. Aun peor que "instanciar". En español
es acceder.

"Accesar" suena tan mal como "grilla", "alocar", "setear", etc.

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.



Dudo bastante que la mayoría sea capaz de definir el término
"instanciar".


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