采取以下代码:
interface ISomeInterface { public int SomeProperty { get; } } struct SomeStruct : ISomeInterface { int someValue; public int SomeProperty { get { return someValue; } } public SomeStruct(int value) { someValue = value; } }
然后在某处执行此操作:
ISomeInterface someVariable = new SomeStruct(2);
就是SomeStruct在这种情况下,盒装?
SomeStruct
是的。基本上,每当您需要 引用 并且只有一个值类型值时,该值就会被装箱。
这里ISomeInterface是一个接口,它是一种引用类型。因此,的值someVariable始终是引用,因此必须将新创建的结构值装箱。
ISomeInterface
someVariable