.net 枚举是 blittable 类型吗?(编组)

Tim*_*ith 6 .net pinvoke enums marshalling

显然有一个 blittable 类型列表,到目前为止我没有看到 Enums 专门针对它。它们总体上是可传输的吗?还是取决于它们是否使用 blittable 基类型声明?

//e.g.
internal enum SERVERCALL : uint
{
    IsHandled = 0,
    Rejected = 1,
    RetryLater = 2,
}
Run Code Online (Sandbox Code Playgroud)

参考文献:

Bra*_*ger 6

枚举是 blittable 类型。从enum关键字文档

每个枚举类型都有一个底层类型,它可以是除 char 之外的任何整数类型。

因为底层类型是整型(所有这些都在 blittable 类型列表中),所以枚举也是 blittable。


Ali*_*tad 5

枚举类型本身不是 blittable(因为它们在非托管世界中没有对应物)但是。

  • 这应该是答案。 (2认同)