我需要在C ++和C#之间创建一个包装器。我的功能与此非常相似:
virtual SOMEINTERFACE* MethodName(ATTRIBUTE_TYPE attribType = ATTRIBUTE_TYPE::ATTRIB_STANDARD) = 0;
enum
声明如下:
enum class ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
如何包装ATTRIBUTE_TYPE枚举?
答案 0 :(得分:9)
您的C ++枚举定义如下:
enum class ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
默认情况下,enum class
类型的大小为int
。这意味着您可以将其转换为C#,如下所示:
enum ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
这就是它的全部。 C#enum是blittable,这个C#enum完全映射到你的C ++枚举。