Boxing tritt nur mit Werttypen auf. B
ist ein Referenztyp, also nein, es gibt kein Boxen. Wenn B
ein Werttyp war (struct
anstelle von class
), dann würde ja Boxen eintreten
interface IA { }
struct B : IA { }
B b = new B();
IA a = b; //boxing, converting a value type into a reference type
b = (B)a; //unboxing, converting a boxed value type back to the value type itself
Eine Möglichkeit, diese Boxen und Unboxing-Operationen zu vermeiden, wenn mit structs und Schnittstellen zu tun ist, die eine generische Schnittstelle, a la IEquatable<T>
, IComparable<T>
usw., die ohne Sie Arbeit mit der Schnittstelle ermöglicht tatsächlich Boxen der Werttyp selbst