コード例 #1
0
        public static bool HasMethodFlags(MethodInfo method, BindingFlags flags)
        {
            if (flags.HasFlags(BindingFlags.Public) && !method.IsPublic)
            {
                if (!flags.HasFlags(BindingFlags.NonPublic))
                {
                    return(false);
                }
            }
            else if (flags.HasFlags(BindingFlags.NonPublic) && method.IsPublic)
            {
                return(false);
            }
            if (flags.HasFlags(BindingFlags.Static) && !method.IsStatic)
            {
                if (flags.HasFlags(BindingFlags.Instance))
                {
                    return(false);
                }
            }
            else if (flags.HasFlags(BindingFlags.Instance) && method.IsStatic)
            {
                return(false);
            }

            return(true);
        }
コード例 #2
0
        public static bool HasFieldFlags(FieldInfo field, BindingFlags flags)
        {
            if (flags.HasFlags(BindingFlags.Public) && !field.IsPublic)
            {
                if (!flags.HasFlags(BindingFlags.NonPublic))
                {
                    return(false);
                }
            }
            else if (flags.HasFlags(BindingFlags.NonPublic) && field.IsPublic)
            {
                return(false);
            }
            if (flags.HasFlags(BindingFlags.Static) && !field.IsStatic)
            {
                if (!flags.HasFlags(BindingFlags.Instance))
                {
                    return(false);
                }
            }
            else if (flags.HasFlags(BindingFlags.Instance) && field.IsStatic)
            {
                return(false);
            }

            return(true);
        }