IronAHK.Scripting.ILMirror.GenericMethodIsEquivalent C# (CSharp) Метод

GenericMethodIsEquivalent() статический приватный Метод

static private GenericMethodIsEquivalent ( MethodBase Orig, MethodBase GenericCousin, Array OrigParams ) : bool
Orig MethodBase
GenericCousin MethodBase
OrigParams Array
Результат bool
        static bool GenericMethodIsEquivalent(MethodBase Orig, MethodBase GenericCousin, ParameterInfo[] OrigParams)
        {
            if(Orig.Name != GenericCousin.Name) return false;
            
            if(Orig.Attributes != GenericCousin.Attributes) return false;
            
            ParameterInfo[] Params = Orig.GetParameters();
            if(Params.Length != OrigParams.Length) return false;
            
            int i;
            for(i = 0; i < Params.Length; i++)
            {
                // TODO: Check if original parameter type matches original generic argument
                if(Params[i].ParameterType != OrigParams[i].ParameterType &&
                   !Params[i].ParameterType.IsGenericParameter)
                    return false;
            }
            
            return true;
        }
    }