Просто бросить его в строку:
writefln("%s", cast(string) TemperatureUnit.F);
Обратите внимание, что этот бросок не требуется при назначении его в строку:
string s = TemperatureUnit.F; // just works
Он приходит в игру только здесь, потому что std.stdio.write*
, а также std.conv.to
, посмотрите на точный тип, переданный ему, и попробуйте специализироваться на нем. Когда это enum Color { red, green, blue }
, распечатать имя полезно. Но это поведение менее полезно, когда значение также является печатаемой строкой. Кастинг сообщает функции, которую вы хотите, чтобы она обрабатывалась как простая строка, а не перечисление.