无法从接口分配显式结构布局?

时间:2018-12-18 20:19:28

标签: c#

在以下示例中,为什么isAssignable为false?

public struct Bar
{
    public int A;
}

[StructLayout(LayoutKind.Explicit)]
public struct Foo<T> : IMyInterface
    where T : struct
{
    [FieldOffset(0)]
    public int A;

    [FieldOffset(4)]
    public T B;
}

public interface IMyInterface {}

...

var isAssignable = typeof(IMyInterface).IsAssignableFrom(typeof(Foo<Bar>));

如果我将布局类型删除或更改为LayoutType.Sequential,则isAssignable为true。

编辑:使其成为通用名称,以进一步匹配我的实际代码。

0 个答案:

没有答案