ExpertiDict

C# · Essencial · Inglês · Técnico

boxing

/ˈbɑksɪŋ/substantivo

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 InvalidCastException

Exemplos

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

Veja também

Todos os termos de C#