泛型和枚举

时间:2011-07-01 16:04:53

标签: .net generics enums

如何在.NET中使用(约束)Enumeration作为generic参数?

我使用了像

这样的东西
Public Function GetEnumStringValues(Of EType As {Structure, _ 
                   IComparable, IConvertible, IFormattable})() As List(Of String)

但这并不好。

2 个答案:

答案 0 :(得分:3)

您可以将枚举类型用作方法的通用参数(例如List<EType>,但您不能将限制泛型参数仅限于枚举类型。

但是,您可以使用几乎保证只在您的方法中使用枚举的技巧:

public static T ParseEnum<T>(this string enumValue)
    where T : struct, IConvertible

有关更完整的说明和代码示例,请参阅Converting string back to enum

答案 1 :(得分:2)

不可能我害怕。

虽然已经requested

Jon Skeet有一个workaround