コード例 #1
0
        internal static int CompareMembers(XamlMember m1, XamlMember m2)
        {
            // ConstructorArguments and PositionalParameters go first.
            if (m1 == XamlLanguage.PositionalParameters)
            {
                return(-1);
            }
            if (m2 == XamlLanguage.PositionalParameters)
            {
                return(1);
            }
            if (m1.IsConstructorArgument())
            {
                if (!m2.IsConstructorArgument())
                {
                    return(-1);
                }
            }
            else if (m2.IsConstructorArgument())
            {
                return(1);
            }

            // ContentProperty is returned at last.
            if (m1.DeclaringType != null && m1.DeclaringType.ContentProperty == m1)
            {
                return(1);
            }
            if (m2.DeclaringType != null && m2.DeclaringType.ContentProperty == m2)
            {
                return(-1);
            }

            // then, compare names.
            return(String.CompareOrdinal(m1.Name, m2.Name));
        }