具有结构属性的接口是否会导致装箱?

Do interfaces with struct properties result in boxing?

假设我有一些结构和一些接口,除其他外,这些接口将该结构公开为 属性:

public struct MyStruct{
    public readonly string Hello;

    public MyStruct(string world){
        Hello = world;
    }
}

public interface IMyInterface{
    MyStruct myStruct{ get; set; }
}

在我的应用程序中,创建了一个实现该接口的对象并将其传递给某个方法:

public void MyMethod(IMyInterface interface){
    var structContents = interface.myStruct;
    Console.WriteLine(structContents.Hello);
}

我的问题是:当我将该结构值打包到接口中并将其传递到我的应用程序时,该结构是否被装箱然后在我稍后在 MyMethod 中访问它时被取消装箱?或者在这种设计的幕后是否还有其他 boxing/unboxing 或其他问题?

根据 the docs:

Boxing is the process of converting a value type to the type object or to any interface type implemented by this value type.

你没有用 myStruct 做这些事情,所以这里没有装箱。