Как реализуется т.н. "оболочка значения" при упаковке? - C#
Формулировка задачи:
Цитата с MSDN:
Упаковка представляет собой процесс преобразования типа значения в тип object или в любой другой тип интерфейса, реализуемый этим типом значения. Когда тип значения упаковывается средой CLR, она
не понятно, как реализуется т.н. "оболочка значения"?
создает оболочку значения
внутри System.Object и сохраняет ее в управляемой куче. Операция распаковки извлекает тип значения из объекта. Упаковка является неявной; распаковка является явной. Понятия упаковки и распаковки лежат в основе единой системы типов C#, в которой значение любого типа можно рассматривать как объект.Решение задачи: «Как реализуется т.н. "оболочка значения" при упаковке?»
textual
Листинг программы
internal class Box<T> where T : struct
{
private T value;
public Box(T value)
{
this.value = value;
}
public static explicit operator T(Box<T> box)
{
return box.value;
}
public static implicit operator Box<T>(T value)
{
return new Box<T>(value);
}
}