C#的枚举有什么问题?!太丑了

本文关键字:问题 枚举 什么 | 更新日期: 2023-09-27 17:55:36

认真的。C#的枚举只是一个普通的Eyesore。(海事组织)。

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

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

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

Enum.Parse<EnumType>(value);

它是一种值类型。因此,不能使用"as"代替类型转换。它不共享基本类型。所以你也不能为它写一个扩展。你要么求助于静态的"助手类"(呜呜......),要么求助于......在绳子上螺栓连接延长方法?!比失败更糟糕?。

有人有优雅的东西吗?

C#的枚举有什么问题?!太丑了

.Net 4 添加了很多...美好。。。到枚举:

http://reedcopsey.com/2009/10/26/long-overdue-enum-goodness-in-net-4/

我正在为 .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); }
}