从Value获取Enum名称?

时间:2013-11-24 18:01:52

标签: enums d

我在寻找这个问题的答案时偶然发现了this topic

基本上,我所要求的是与该线程中所做的相反。而不是通过它的名字得到枚举的价值,我想通过它的价值得到它的名字。这是怎么做到的?

1 个答案:

答案 0 :(得分:5)

你这样做的原因完全相同,但埃里克指出,它并不完美:

import std.conv;
import std.stdio;

enum LogLevel { ALL, INFO, WARNING }
enum Color {white, gray = 1, grey =1, black}

void main()
{
     enum l = to!LogLevel(1);
     assert(l == LogLevel.INFO);
     writeln(to!string(l));

     enum c = to!Color(1);
     writeln(to!string(c));
}

INFO
gray