using System; using System.Reflection; namespace UnityEngine.Events { // Token: 0x02000475 RID: 1141 internal abstract class BaseInvokableCall { // Token: 0x0600397C RID: 14716 RVA: 0x00063DFC File Offset: 0x00061FFC protected BaseInvokableCall() { } // Token: 0x0600397D RID: 14717 RVA: 0x00063E08 File Offset: 0x00062008 protected BaseInvokableCall(object target, MethodInfo function) { if (target == null) { throw new ArgumentNullException("target"); } if (function == null) { throw new ArgumentNullException("function"); } } // Token: 0x0600397E RID: 14718 public abstract void Invoke(object[] args); // Token: 0x0600397F RID: 14719 RVA: 0x00063E34 File Offset: 0x00062034 protected static void ThrowOnInvalidArg(object arg) { if (arg != null && !(arg is T)) { throw new ArgumentException(UnityString.Format("Passed argument 'args[0]' is of the wrong type. Type:{0} Expected:{1}", new object[] { arg.GetType(), typeof(T) })); } } // Token: 0x06003980 RID: 14720 RVA: 0x00063E74 File Offset: 0x00062074 protected static bool AllowInvoke(Delegate @delegate) { object target = @delegate.Target; bool flag; if (target == null) { flag = true; } else { Object @object = target as Object; flag = object.ReferenceEquals(@object, null) || @object != null; } return flag; } // Token: 0x06003981 RID: 14721 public abstract bool Find(object targetObj, MethodInfo method); } }