这个问题已经在这里有了答案:
已关闭8年。
采取以下代码:
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
装箱吗? 最佳答案
是的。基本上,每当您需要引用并且只有一个值类型值时,该值就会被装箱。
在这里,ISomeInterface
是一个接口(interface),是一种引用类型。因此someVariable
的值始终是一个引用,因此必须将新创建的struct值装箱。