【问题标题】:C#: Wrapping one Enum inside another (ie. mirroring another enum/copying it...)C#:将一个枚举包装在另一个枚举中(即镜像另一个枚举/复制它......)
【发布时间】:2010-12-22 12:21:20
【问题描述】:

这是我的问题:我有一个引用 DLL 的对象。我希望其他对象引用我的对象,而不必同时包含对 DLL 本身的引用。

这在大多数情况下都很好,除了我想复制的 DLL 中有一个枚举。我可以逐行写出枚举,但我想知道是否有更好的方法来做到这一点。

即。

假设 DLL 有以下枚举:

public enum dllEnum
{
  value1,
  value2,
  value3
}

我可以做到以下几点:

public enum myEnum
{
  value1,
  value2,
  value3
}

或者更好:

public enum myEnum
{
  value1 = dllEnum.value1,
  value2 = dllEnum.value2,
  value3 = dllEnum.value3
}

但是这些案例中的每一个都让我自己写出整个枚举。我宁愿能够将整个枚举包装为我自己的,保留原始枚举的索引。

类似的东西:

public enum myEnum
{
  Enum.GetValues(dllEnum)
}

【问题讨论】:

    标签: c# enums reference pointers word-wrap


    【解决方案1】:

    您的问题已在此处讨论过:

    Enum "Inheritance"

    【讨论】:

      【解决方案2】:

      http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/ddedaf59-fb36-45cd-8062-446fa92d8f68

      这篇文章有一些很好的例子可以帮助你找到一个解决方案,你可以动态生成枚举并在运行时编译它。我已经为 VB.Net 中的 'eval' 类型函数完成了此操作,但我还没有为枚举完成此操作。

      这将不允许在编译时检查值,所以你会在很多方面处于一个受伤的世界。使用 .Net 4.0 中的 DLR,我想您会拥有更大的灵活性(尽管我承认,我还没有阅读框架下一版本的详细信息。)

      【讨论】:

      • 这比简单地自己绘制 Enum 更重要……我不一定认为它值得。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 2016-11-30
      • 2017-04-01
      • 1970-01-01
      • 2021-01-04
      相关资源
      最近更新 更多