UnityEngine.MonoBehaviour.GetMethods C# (CSharp) Method

GetMethods() private method

private GetMethods ( object target, List methodNames, List methodTypes ) : object[]
target object
methodNames List
methodTypes List
return object[]
        private object[] GetMethods(object target, List<string> methodNames, List<Type> methodTypes)
        {
            if (methodNames.Count != methodTypes.Count)
                throw new ArgumentOutOfRangeException("methodTypes", "methodNames and methodTypes must be the same length");

            MethodInfo[] methods = target.GetType().GetMethods(
                BindingFlags.Public
                | BindingFlags.NonPublic
                | BindingFlags.Instance
                | BindingFlags.FlattenHierarchy);

            object[] retMethods = new object[methodNames.Count];

            foreach (var method in methods)
            {
                var ind = methodNames.IndexOf(method.Name);
                if (ind != -1)
                {
                    retMethods[ind] = Delegate.CreateDelegate(methodTypes[ind], target, method, false);
                }
            }

            return retMethods;
        }