Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/23/17 12:15:12 (7 years ago)
Author:
pfleck
Message:

#2724

  • Added a ListView for Flag-attributed enums in the EnumValueView.
  • Simplified EnumValue cloning (already done in base-constructor).
  • Added a SetFlag helper for enums.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Data/3.3/EnumValue.cs

    r14185 r14597  
    5252    private EnumValue(EnumValue<T> original, Cloner cloner)
    5353      : base(original, cloner) {
    54       this.value = original.value;
    55       this.readOnly = original.readOnly;
    5654    }
    5755
     
    6462    }
    6563  }
     64
     65  public static class EnumHelper {
     66    public static T SetFlag<T>(this Enum value, T flag, bool set) {
     67      var baseType = Enum.GetUnderlyingType(value.GetType());
     68      dynamic valueAsBase = Convert.ChangeType(value, baseType);
     69      dynamic flagAsBase = Convert.ChangeType(flag, baseType);
     70      if (set)
     71        valueAsBase |= flagAsBase;
     72      else
     73        valueAsBase &= ~flagAsBase;
     74      return (T)valueAsBase;
     75    }
     76  }
    6677}
Note: See TracChangeset for help on using the changeset viewer.