Enums 基于成员';s值

Enums 基于成员';s值,enums,d,Enums,D,我有一个enum类型,我想将整数值转换为该类型。这不起作用: enum Code { OK = 200, FAILURE = 400 } auto c = to!Code("200"); 但这是: enum Code { OK = 200, FAILURE = 400 } Code c = to!Code("OK"); 好像是到了!(T) 正在根据枚举成员的名称而不是值进行转换。所以,我试过这个,它是有效的: Code c = cast(CodeEnum)20

我有一个
enum
类型,我想将整数值转换为该类型。这不起作用:

enum Code
{
   OK = 200,
   FAILURE = 400
} 

auto c = to!Code("200");
但这是:

enum Code
{
   OK = 200,
   FAILURE = 400
} 

Code c = to!Code("OK");
好像是
到了!(T) 
正在根据枚举成员的名称而不是值进行转换。所以,我试过这个,它是有效的:

Code c = cast(CodeEnum)200;

这是进行这种转换的有效(也是唯一)方法吗?

在我看来,问题出在其他地方。这与DMD 2.064(在DPaste上测试)的预期行为相同


您确定
code
的基础类型和
的参数都是!代码与您的情况相同吗?这是转换的要求。

是的,问题出在其他地方!我正在有效地执行
到!代码(“200”)哪个按字符串进行了查找!谢谢
import std.conv;
import std.stdio;

enum Code
{
   OK = 200,
   FAILURE = 400
} 

void main()
{
    auto c = to!Code(200);
    writeln(c);
}