2011-03-15 80 views
2

我需要创建一个类似于'DESIGN & BUILD'的枚举值。我正在编写一个导入器服务,并导入类似上面的类型。我需要将它与Db中的类型进行比较。是否可以让我知道是否可以创建类似上面的枚举值。此外,我认为我们也可以通过采用只存在文本但不包含任何符号的正则表达式来实现它,我的意思是我们只获得'DESIGNBUILD'。如何用'&'在枚举中创建一个值

如果你认为这是一个可行的解决方案可也有人帮助我的正则表达式,请

感谢

+0

这个问题很难理解。你想生成C#枚举代码?你想'DESIGN&BUILD'产生一个'DESIGN'值和一个'BUILD'值,或者一个'DESIGNBUILD'值?它在上下文中看起来像什么?你能给我们一些样本输入和输出吗? – 2011-03-15 14:59:17

回答

9

你不能。枚举值名称必须是有效的C#标识符,并且不包括&。我建议你使用DescriptionAttribute或类似的东西来为枚举值提供更灵活的元数据。

虽然你可能使用正则表达式来执行映射,我相信如果你使用元数据你会得到一个更灵活的结果。然后,您可以轻松构建一个Dictionary<string, YourAttributeType>,反之亦然。

+0

嗨,我知道一个描述属性是有用的,但他的进口商代码的其余部分将不会遵循这个,所以我需要改变整个代码,以便继续与此,我们能想出一个更好的解决方案请 – pinki 2011-03-15 14:58:54

+0

字典在这种情况下我会做什么。 :) – 2011-03-15 14:59:32

+2

@ manasareddy.kundur:介绍执行文本和枚举值之间映射的单个点。这是一个实施决定。如果你有很多代码已经假定了文本和枚举值名称之间的直接映射(例如,在任何地方使用Enum.Parse),这只是一个不幸的设计错误,你必须纠正。正则表达式方法不会让这个更容易。 – 2011-03-15 15:01:00