在C#中,您可以声明一个枚举,一旦设置了它的值,就在变量上调用ToString并获得该枚举值的字符串表示形式。
您如何在C ++ / CLI中使用托管枚举来做到这一点?
语法不是一样吗?
MyEnum enumValue = MyEnum::Enum1;
Console::WriteLine(enumValue.ToString());
Run Code Online (Sandbox Code Playgroud)
查看Google 图书中“Pro Visual C++/CLI 和 .NET 3.5 Platform”一书的这一页
“枚举的 ToString() 方法将枚举名称打印为字符串”
虽然其他答案都不正确,但我发现自己也遇到了同样的问题。就我而言,我已经声明了一个标准的C ++枚举,却忘记了使用CLI语法(即使我在公共属性中公开了它,却没有编译器警告!)。
C ++ / CLI枚举的正确语法是(请注意单词“ class”):
public enum class SomeEnum {
Value1,
Value2
}
Run Code Online (Sandbox Code Playgroud)
注意:您也可以使用“结构”而不是“类”。
您还需要重新检查代码并更改所有分配(编译器会很乐意向您显示错误):
SomeEnum value = Value1;
Run Code Online (Sandbox Code Playgroud)
对此:
SomeEnum value = SomeEnum::Value1;
Run Code Online (Sandbox Code Playgroud)
现在,您会发现'ToString()'可以按预期工作。
| 归档时间: |
|
| 查看次数: |
5766 次 |
| 最近记录: |