gpt4 book ai didi

enums - C++/CLI : Casting from unmanaged enum to managed enum

转载 作者:行者123 更新时间:2023-12-01 20:24:53 26 4
gpt4 key购买 nike

从 native 代码强制转换(在 C++/CLI 中)的正确方法是什么 enum到托管代码enum其中包含相同的 enum值(value)观?与使用 C# 的强制转换方式有什么区别,例如 (int)在 C++/CLI 中。

最佳答案

假设您的 native 代码是

enum shape_type_e
{
stUNHANDLED = 0, //!< Unhandled shape data.
stPOINT = 1 //!< Point data.
...
};

您的托管代码是

public enum class ShapeType
{
Unhandled = 0,
Point = 1,
...
};

您可以使用从 native 到托管的转换

shape_type_e nativeST = stPOINT;
ShapeType managedST = static_cast<ShapeType>(nativeST);
Debug.Assert(managedST == ShapeType::Point);

我总是使用 static_cast,而不是 C# 的转换方式。

关于enums - C++/CLI : Casting from unmanaged enum to managed enum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1873339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com