C# · Essencial · Inglês · Técnico
boxing
Conversão de um value type para object ou interface, que aloca um objeto no heap e copia o valor; unboxing é o caminho inverso, com cast explícito.
Onde usar
Aparece em profiling de alocações e em coleções antigas como ArrayList. Em código quente, o boxing pressiona o GC; genéricos e interfaces com constraints evitam esse custo.
Em código
int i = 123;
object o = i; // boxing: aloca no heap
i = 456;
Console.WriteLine((int)o); // 123, unboxing
// (long)o lança InvalidCastExceptionExemplos
That cast to object causes boxing on every iteration.
Esse cast para object causa boxing a cada iteração.
Use a generic list to avoid boxing.
Use uma lista genérica para evitar boxing.
Cuidado
O boxing é silencioso: passar um int para um parâmetro object ou para string.Format boxeia sem aviso algum.
Sinônimos
empacotamento
Antônimos
unboxing