在以下示例中,为什么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。
编辑:使其成为通用名称,以进一步匹配我的实际代码。