using KGySoft.CoreLibraries;
using KGySoft.Diagnostics;
public static void Example1<TEnum>(TEnum simpleEnum)
where TEnum : struct, Enum
if (!simpleEnum.IsDefined())
throw new ArgumentOutOfRangeException(PublicResources.EnumOutOfRange(simpleEnum));
Console.WriteLine(simpleEnum);
public static void Example2<TEnum>(TEnum flagsEnum)
where TEnum : struct, Enum
if (!flagsEnum.AllFlagsDefined())
throw new ArgumentOutOfRangeException(PublicResources.FlagsEnumOutOfRange(flagsEnum));
Console.WriteLine(flagsEnum);
public static void Main()
Example1(SimpleEnum.One);
Example2(FlagsEnum.Flag1 | FlagsEnum.Flag2);
new PerformanceTest<object>
.AddCase(() => Enum.IsDefined(SimpleEnum.One), "System.Enum.IsDefined")
.AddCase(() => SimpleEnum.One.IsDefined(), "KGySoft IsDefined extension")
.DumpResults(Console.Out);