Sobes.tech
Junior — Middle

Expliquez les différences entre les processus d'emballage et de déballage des valeurs dans un langage de programmation.

sobes.tech IA

Réponse de l'IA

En C#, le boxing est le processus de convertir une valeur de type (par exemple, int, bool) en un objet de type System.Object ou dans l'interface qu'il implémente. Lors du boxing, la valeur est copiée dans le tas géré et enveloppée dans un objet.

Le unboxing est le processus inverse, où un objet contenant une valeur empaquetée est converti à nouveau en une valeur du type d'origine. Lors du unboxing, une vérification de type est effectuée et la valeur est copiée de l'objet dans une variable de type valeur.

Exemple:

int x = 123;       // type valeur
object obj = x;    // boxing
int y = (int)obj;  // unboxing

Le boxing et le unboxing affectent la performance, car ils nécessitent une allocation de mémoire et une copie des données. Il faut donc les minimiser, surtout dans les parties critiques du code.