【问题标题】:Can we make a enum as a generic data type?我们可以将枚举作为通用数据类型吗?
【发布时间】:2010-01-28 09:45:22
【问题描述】:

我们可以将枚举作为通用数据类型吗?如果是这样,请提供一个例子。提前致谢。

【问题讨论】:

  • 你到底想用它做什么?
  • 我们的项目中有许多枚举,它们属于各种类别,例如家用仪表、商业仪表等类型,现在不是将通常的整数值映射到我们正在考虑映射仪表的名称用它编码。因此,我认为如果枚举可以是通用的,我们可以创建仪表类型类并创建通用枚举。我希望它能解决我的问题。

标签: c# .net generics enums


【解决方案1】:

枚举不能被泛型化。

来自MSDN

An enumeration is a named constant whose underlying type is any integral type

请参阅this SO 答案以获得替代方案。

【讨论】:

  • 给出的例子很棒,并且映射了我正在寻找的东西。谢谢!
【解决方案2】:

没有。 C# 中的枚举具有一个完整的基本类型(默认为 Int32),但其中的项目在编译时始终是已知的。泛型如何融入枚举的概念根本没有明智的方法。

【讨论】:

    【解决方案3】:

    你可以试试class enums

    【讨论】:

    • 感谢您的链接。这确实是我想要解决的方式......但坦率地说,它非常复杂!你能分享一个不太复杂的例子吗?
    • @HotTest 可能不是。所有这些都是必要的。
    【解决方案4】:

    您可以将enum 作为类型参数传递给约束允许的泛型方法,但enum 本身不能是泛型的。

    【讨论】:

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