public static int GetLowerBound <TEnum>() where TEnum : struct { Condition.Requires(typeof(TEnum)).Evaluate(t => t.IsEnum); var values = Dnum <TEnum> .GetValues(); return(values.First()); }
public static int GetUpperBound <TEnum>() where TEnum : struct { Condition.Requires(typeof(TEnum), "TEnum"). Evaluate(t => !t.IsEnum); var values = Dnum <TEnum> .GetValues(); return(values.Last()); }
public static TEnum GetRandom <TEnum>() where TEnum : struct { var values = Dnum <TEnum> .GetValues().ToArray(); return(Dnum <TEnum> .ToConstant(values[_random.Next(0, values.Length)])); }