严重。 C#的枚举只是一个简单的眼睛。 (IMO)。
当你从一个字符串中解析它时,你会看到一整行臃肿的遗留代码:
(EnumType)Enum.Parse(typeof(EnumType), value);
真的?一个解析方法,它接受一个类型参数,并吐出一个对象?! 真的,它可能是:
Enum.Parse<EnumType>(value);
这是一种价值类型。因此,您不能使用“as”而不是类型转换。它不共享基本类型。所以你也不能为它写一个扩展名。你要么采用静态的“助手类”(哇哇......),要么在字符串上使用...螺栓式扩展方法?!比失败更糟糕?。
任何人都有优雅的东西?
答案 0 :(得分:8)
.Net 4为Enum添加了很多......好看......
http://reedcopsey.com/2009/10/26/long-overdue-enum-goodness-in-net-4/
答案 1 :(得分:1)
我正在为.net编码,并且enum
永远不会失败。它对某些地方来说很优雅,你想要实现的目标并不优雅。将几个enum
投射到共同基地?做什么的?枚举是一种强类型常量集,应该像这样使用。解析enum
并不是写(EnumType)Enum.Parse(typeof(EnumType), value);
变得烦人的常见任务。如果确实如此,那就写下来:
static class EnumHelper
{
public T Parse<T>(string val) { return (T)Enum.Parse(typeof(T), val); }
}