一尘不染

结构,接口和装箱

c#

采取以下代码:

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在这种情况下,盒装?


阅读 179

收藏
2020-05-19

共1个答案

一尘不染

是的。基本上,每当您需要 引用 并且只有一个值类型值时,该值就会被装箱。

这里ISomeInterface是一个接口,它是一种引用类型。因此,的值someVariable始终是引用,因此必须将新创建的结构值装箱。

2020-05-19