Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 2
            [id] => 541805
            [titulo] => Boxing e Unboxing
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-01-07 15:37:12
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 437464
            [status] => A
            [isExample] => 
            [NomeUsuario] => Edson Rodrigo 
            [Apelido] => Edson Rodrigo
            [Foto] => 437464_20160601160345.png
            [Conteudo] => A conversão de um valor de tipo primitivo numérico para um valor de tipo não primitivo numérico
é realizada através de um processo chamado boxing.

A conversão de um valor de tipo não primitivo numérico para um valor de tipo primitivo numérico
é realizada através de um processo chamado unboxing.

Os processos de boxing e unboxing, quando necessários, são realizados de forma automática.
Daí surge o termo autoboxing. ) )

Boxing e Unboxing

Johnny Lucas
   - 06 jan 2016

Confesso que estou com dificuldades em entender até conceitualmente o Boxing e Unboxing, afinal, é encapsulamento ou conversão ou os dois ao mesmo tempo?

Post mais votado

Edson Rodrigo
   - 07 jan 2016

A conversão de um valor de tipo primitivo numérico para um valor de tipo não primitivo numérico
é realizada através de um processo chamado boxing.

A conversão de um valor de tipo não primitivo numérico para um valor de tipo primitivo numérico
é realizada através de um processo chamado unboxing.

Os processos de boxing e unboxing, quando necessários, são realizados de forma automática.
Daí surge o termo autoboxing.

Aluisio Cavalcante
   - 06 jan 2016

coloca algum exemplo de código.

Johnny Lucas
   - 06 jan 2016

#Código


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Boxing
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 10;
            object o = (object)a;
            //System.Object

            Console.WriteLine(o.GetType().ToString());

            int b = (int)o;

            System.Type t = b.GetType();
            
            //( (int)o );

            Console.WriteLine();

            Console.WriteLine(b);

            Console.ReadKey();
        }
    }
}


Emilio Neto
   - 06 jan 2016

Melhor do que explicar, que eu não sei bem explicar, hehehe, te passar esses links:

https://msdn.microsoft.com/pt-br/library/yz2be5wk.aspx

http://www.devmedia.com.br/boxing-e-unboxing-em-net/6962

Johnny Lucas
   - 07 jan 2016

Olá Emilio, obrigado pelos links. Vou conferi-los.

Emilio Neto
   - 07 jan 2016

Alguns conceito vai entender mesmo apenas com leitura, se caso seja algo mais especifico pode perguntar.

Edson Rodrigo
   - 07 jan 2016

Exemplo:
Na primeira atribuição, o valor literal 1, que é do int, é automaticamente convertido para o tipo Integer. O inverso ocorre na segunda atribuição,
quando o valor armazenado na variável x é automaticamente convertido do tipo Integer para o valor correspondente do tipo int.
Meu exemplo foi em java mas creio que os conceito segue a mesma base..
#Código


Integer x = 1; // boxing automático
2
3 int y = x; // unboxing automático

Johnny Lucas
   - 07 jan 2016

Desconheço autoboxing, feito automaticamente pela linguagem? Isso é exclusividade do C#?

Edson Rodrigo
   - 07 jan 2016

No c# nao tem autoboxing..

Desconsidere o terceiro paragrafo..

Johnny Lucas
   - 07 jan 2016

Tudo bem Edson, mas só tem no C# ou no Java tambem?

Edson Rodrigo
   - 07 jan 2016

No caso boxing e Unboxing existe nas duas linguagens.

Porem o AutoBoxing existe na linguagem Java. Entendeu ?

Johnny Lucas
   - 07 jan 2016

Perfeito, entendi Edson!

Emilio Neto
   - 07 jan 2016

Gostei da explicação Edson!

Pedro Oliveira
   - 07 jan 2016

Boa aula, mas em inglês.

https://www.youtube.com/watch?v=MzczkEx90b4