Python.Runtime.MethodBinder.GetPrecedence C# (CSharp) Method

GetPrecedence() static private method

static private GetPrecedence ( MethodBase mi ) : int
mi System.Reflection.MethodBase
return int
	internal static int GetPrecedence(MethodBase mi) {
	    ParameterInfo[] pi = mi.GetParameters();
	    int val = mi.IsStatic ? 3000 : 0;
	    int num = pi.Length;

	    for (int i = 0; i < num; i++) {
		val += ArgPrecedence(pi[i].ParameterType);
	    }

	    return val;
	}

Usage Example

コード例 #1
0
        int IComparer.Compare(object m1, object m2)
        {
            var me1 = (MethodBase)m1;
            var me2 = (MethodBase)m2;

            if (me1.DeclaringType != me2.DeclaringType)
            {
                // m2's type derives from m1's type, favor m2
                if (me1.DeclaringType.IsAssignableFrom(me2.DeclaringType))
                {
                    return(1);
                }

                // m1's type derives from m2's type, favor m1
                if (me2.DeclaringType.IsAssignableFrom(me1.DeclaringType))
                {
                    return(-1);
                }
            }

            int p1 = MethodBinder.GetPrecedence((MethodBase)m1);
            int p2 = MethodBinder.GetPrecedence((MethodBase)m2);

            if (p1 < p2)
            {
                return(-1);
            }
            if (p1 > p2)
            {
                return(1);
            }
            return(0);
        }
All Usage Examples Of Python.Runtime.MethodBinder::GetPrecedence