Only a value type can be boxed
Only value classes can be boxed.
The following sample generates C3627:
#using <mscorlib.dll> __value class vA { }; __gc class A { }; void main() { A* a; __box(a); // C3627 // box a value type vA va; __box(va); }