C#的枚举有什么问题?!它真是太棒了

时间:2011-05-10 01:54:53

标签: c# enums

严重。 C#的枚举只是一个简单的眼睛。 (IMO)。

当你从一个字符串中解析它时,你会看到一整行臃肿的遗留代码:

(EnumType)Enum.Parse(typeof(EnumType), value);

真的?一个解析方法,它接受一个类型参数,并吐出一个对象?! 真的,它可能是:

Enum.Parse<EnumType>(value);

这是一种价值类型。因此,您不能使用“as”而不是类型转换。它不共享基本类型。所以你也不能为它写一个扩展名。你要么采用静态的“助手类”(哇哇......),要么在字符串上使用...螺栓式扩展方法?!比失败更糟糕?。

任何人都有优雅的东西?

2 个答案:

答案 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); }
}