【问题标题】:Generics and Enumerations泛型和枚举
【发布时间】:2011-07-01 16:04:53
【问题描述】:

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

我用过类似的东西

Public Function GetEnumStringValues(Of EType As {Structure, _ 
                   IComparable, IConvertible, IFormattable})() As List(Of String)

但这并不好。

【问题讨论】:

    标签: .net generics enums


    【解决方案1】:

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

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

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

    请参阅Converting string back to enum 以获得更完整的说明和代码示例。

    【讨论】:

    • 对不起我的英语:“你可以使用一些技巧来几乎保证”,几乎,但不完全。
    【解决方案2】:

    恐怕不可能。

    不过是requested

    Jon Skeet 有一个workaround

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-28
      相关资源
      最近更新 更多