Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
            }
        }