Sommaire

Introduction

Le boxing consiste à convertir un type valeur vers un type référence (object par exemple) ; l’unboxing est l’opération inverse. Ce type de mécanisme est évidemment fréquemment utile, mais il ne faut pas négliger le coût important d’une opération de boxing. Il s’agira par exemple d’être prudent quant à son utilisation sur une collection de plusieurs milliers d’objets par exemple.

Que fait le Common Language Runtime à l’exécution quand il s’agit de faire un boxing ? Le CLR prend la valeur, la range dans un objet de type System.Object et stocke cet objet sur le tas managé. Notre valeur est donc passée de la pile au tas. L’unboxing consiste à faire l’opération suivante : extraire une valeur d’un type référence et stocker cette valeur sur la pile.