Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Julio 26, 2008, 09:05:15
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Duda con boxing ,unboxing en C# 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Duda con boxing ,unboxing en C#  (Leído 74 veces)
usarioma
Habitual
*****
Desconectado Desconectado

Mensajes: 303



Ver Perfil Email
« en: Marzo 25, 2008, 05:22:00 »



tengo un pedazo de codigo en donde no entiendo el funcionamiento, se trata de boxing ,unboxing;mis dudas se los pongo como comentarios en el codigo

Y partiendo del concepto que cualquier dato intrinseco(int,byte,char,float,etc,etc) es un objeto y por ende deriva de la clase Object




Código:
static void Main(string[] args)

{


int Numero = 5;

Object Rnumero; //es un objeto no definido

/* Rnumero toma el valor de Numero ,pero ,Rnumero sigue siendo un Object o ahora es un int?  */

Rnumero = Numero;


Console.WriteLine(Rnumero);//la salida es 5

Rnumero = 10;//ahora Rnumero es 10,pero que tipo de dato es? un Object o un int?



/*Bueno aqui supongo que Rnumero es un Object porque hace un casting para devolver un valor int  a Numero,no es asi?"*/

Numero = (int)Rnumero;

Console.WriteLine(Numero); //salida es 10

Console.WriteLine(Rnumero);//salida es 10


Console.WriteLine("Los tipos de datos son");

Console.WriteLine(Numero.GetType());//aqui es un Int32



/*aqui es un int32,que ???? Rnumero acaso no era un Object? sino,porque se hizo este casting(este: Numero = (int)Rnumero; )?entonces solo deberiamos colocar Numero=Rnumero ,no les parece?*/

Console.WriteLine(Rnumero.GetType());



}






porfavor alguien q me explique un poco sobre esto?

Cuando se crea un Object no hay forma de volverlo String ,int, u otro objeto desendiente de la clase Object?
En línea

Devuelve golpe por golpe, desprecio por
desprecio, ruina por ruina, ¡y devuélvelos con
interés del ciento por ciento! Ojo por ojo, diente
por diente, ¡siempre en una proporción de cuatro
a uno, de cien a uno! Conviértete en el temor de
tu adversario, y cuando él se aleje, lo hará con
mucha más sabiduría que rumiar. De este modo,
te harás respetar en todas las esferas de la vida, y
tu espíritu, tu espíritu -inmortal, vivirá, no en un
paraíso intangible, sino en el cerebro y en las
fibras de aquellos cuyo respeto has conquistado.
FreakMind
Habitual
*****
Desconectado Desconectado

Mensajes: 181



Ver Perfil
« Respuesta #1 en: Marzo 25, 2008, 09:50:13 »

Buenas. Estoy casi seguro de esto (pero casi no es 100% asi que puedo estar mal jeje)

Boxing o Unboxing (tambien llamado Wrapping) se hace para simular un entorno completamente orientado a objetos (como es el de Smalltalk). Con esta tecnica, tipos de datos primitivos que no son objetos (caso de int, char, etc), son envueltos en un objeto para asi poder tratarlos como tales.

1_Rnumero = Numero en realidad se "transformaria" en algo como Rnumero = Integer(Numero) (esto instanciaria un objeto de tipo Integer.
2_Numero = (int)Rnumero, castea Object a int
3_Console.WriteLine(Rnumero.GetType()); debe dar int32 porque si bien la variable es tipo Object, el objeto que instanciaste es un int32

Saludos, FreakMind

En línea

Connoisseurs of C semantics find C++ inferior to ++C

Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Duda con boxing ,unboxing en C# « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC