pregunta corta2

04/11/2003 - 15:22 por Josema | Informe spam
Hola a todos y disculpar por la pregunta...soy muy nuevo
aqui...

Yo siempre he usado string, int, bool, array, etc...

alguien podria decirme para que se usa el tipo object...y
como se usa...

object myobj=new object();
Muchas Gracias.
Josema

Preguntas similare

Leer las respuestas

#1 JMCU
04/11/2003 - 16:51 | Informe spam
Bueno el tipo object es el tipo base de todo. Todo puede ser guardado en un
objeto. Todos los tipos de datos predefinidos y creados por el usuario
heredan implicitamente de esta clase o tipo

Ejemplo:

http://msdn.microsoft.com/library/d...sref/html/
vcgrfobject.asp

Saludos



"Josema" escribió en el mensaje
news:10ec01c3a2df$2419e770$
Mostrar la cita
#2 Juan Cristóbal Olivares C.
04/11/2003 - 17:43 | Informe spam
Una variable object se puede utilizar para almacenar cualquier tipo de
objeto.

Todos los elementos heredan de object, es por esto que podemos hacer algo
como:

object[] arreglo = new object { new Exception (), new Int32 (), new Object
() };

Todos los elementos son almacenados como objects, pero aquí hay dos
problemas:

1.- Rendimiento: los elementos tienen que ser encapsulados (boxing) hacia
object y, para volver a usarlos, hay que desencapsularlos. Esto baja el
rendimiento de la aplicación.
2.- Tipos Incompatibles: Podríamos, por error, tratar de transformar un
objeto en Exception, cuando realmente lo creamos como un Int32, esto no se
puede hacer y nos arrojaría un error.

Por esto, es mejor utilizar lo menos posible el tipo object directamente. En
la próxima versión de c# se podrán utilizar genéricos.

http://www.juancri.com/notas/nota.html?id

Atte,
Juan C. Olivares
www.juancri.com


"Josema" escribió en el mensaje
news:10ec01c3a2df$2419e770$
Mostrar la cita
#3 Michael Giagnocavo [MVP]
05/11/2003 - 16:06 | Informe spam
Mostrar la cita
Bueno, solo los ValueTypes tendran que ser boxeados (el Int32 en este caso).
Los otros elementos (tipos referencia) seran almacenados directamente
(stelem.ref).

-mike
MVP
#4 Juan Cristóbal Olivares C.
05/11/2003 - 18:29 | Informe spam
No es así. Cuando un tipo es transformado a un tipo base, también se realiza
un boxing.

"Michael Giagnocavo [MVP]" escribió en el mensaje
news:uNg$
Mostrar la cita
Object
Mostrar la cita
hacia
Mostrar la cita
caso).
Mostrar la cita
#5 Michael Giagnocavo [MVP]
07/11/2003 - 06:56 | Informe spam
using System;
class c1 {
public static void Main() {
object[] arreglo = new object[] { new Exception(), new Int32(), new
Object() };
}
}

Compilar con CSC. ILDASM:
.method public hidebysig static void Main() cil managed
{
.entrypoint
// Code size 35 (0x23)
.maxstack 3
.locals init (object[] V_0,
object[] V_1)
IL_0000: ldc.i4.3
IL_0001: newarr [mscorlib]System.Object
IL_0006: stloc.1
IL_0007: ldloc.1
IL_0008: ldc.i4.0
IL_0009: newobj instance void [mscorlib]System.Exception::.ctor()
IL_000e: stelem.ref
IL_000f: ldloc.1
IL_0010: ldc.i4.1
IL_0011: ldc.i4.0
IL_0012: box [mscorlib]System.Int32
IL_0017: stelem.ref
...
IL_0022: ret
} // end of method c1::Main

Dime, donde esta el box para el Exception? Boxing solo existe para
ValueTypes. Como puedes ver, para tipos referencia, no es necesario hacer
un box. Ni es posible.

-mike
MVP


"Juan Cristóbal Olivares C." wrote in message
news:
Mostrar la cita
realiza
Mostrar la cita
el
Mostrar la cita
Ads by Google
Search Busqueda sugerida