public bool NonGenericFlagEnums_HasAllFlags() { var result = false; foreach (var attributeTargets in _attributeTargets) { foreach (var otherAttributeTargets in _allAttributeTargets) { result |= NonGenericFlagEnums.HasAllFlags(_enumType, attributeTargets, otherAttributeTargets); } } return(result); }
private static void HasFlag(AttributeTargets[] attributeTargetsArray, AttributeTargets[] allAttributeTargets) { const int iterations = 160000; #if !NET20 && !NET35 using (new OperationTimer("Enum.HasFlag")) { for (var i = 0; i < iterations; ++i) { foreach (var attributeTargets in attributeTargetsArray) { foreach (var otherAttributeTargets in allAttributeTargets) { attributeTargets.HasFlag(otherAttributeTargets); } } } } #endif var attributeTargetsType = typeof(AttributeTargets); using (new OperationTimer("NonGenericFlagEnums.HasAllFlags")) { for (var i = 0; i < iterations; ++i) { foreach (var attributeTargets in attributeTargetsArray) { foreach (var otherAttributeTargets in allAttributeTargets) { NonGenericFlagEnums.HasAllFlags(attributeTargetsType, attributeTargets, otherAttributeTargets); } } } } using (new OperationTimer("Enums.HasAllFlags")) { for (var i = 0; i < iterations; ++i) { foreach (var attributeTargets in attributeTargetsArray) { foreach (var otherAttributeTargets in allAttributeTargets) { attributeTargets.HasAllFlags(otherAttributeTargets); } } } } var temp = false; using (new OperationTimer("Manual HasAllFlags")) { for (var i = 0; i < iterations; ++i) { foreach (var attributeTargets in attributeTargetsArray) { foreach (var otherAttributeTargets in allAttributeTargets) { temp |= attributeTargets.ManualHasAllFlags(otherAttributeTargets); } } } } if (temp) { Console.WriteLine(); } }