Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetMethodImpl()

override MethodInfo System.MulticastDelegate.GetMethodImpl ( )
inlineprotectedvirtual

Reimplemented from System.Delegate.

Definition at line 455 of file MulticastDelegate.cs.

456 {
457 if (_invocationCount != (IntPtr)0 && _invocationList != null)
458 {
459 if (_invocationList is object[] array)
460 {
461 int num = (int)_invocationCount - 1;
462 return ((Delegate)array[num]).Method;
463 }
465 {
466 return multicastDelegate.GetMethodImpl();
467 }
468 }
469 else if (IsUnmanagedFunctionPtr())
470 {
471 if (_methodBase == null || !(_methodBase is MethodInfo))
472 {
473 IRuntimeMethodInfo runtimeMethodInfo = FindMethodHandle();
474 RuntimeType runtimeType = RuntimeMethodHandle.GetDeclaringType(runtimeMethodInfo);
475 if (RuntimeTypeHandle.IsGenericTypeDefinition(runtimeType) || RuntimeTypeHandle.HasInstantiation(runtimeType))
476 {
477 RuntimeType runtimeType2 = (RuntimeType)GetType();
479 }
480 _methodBase = (MethodInfo)RuntimeType.GetMethodBase(runtimeType, runtimeMethodInfo);
481 }
482 return (MethodInfo)_methodBase;
483 }
484 return base.GetMethodImpl();
485 }
IRuntimeMethodInfo FindMethodHandle()
object _methodBase
Definition Delegate.cs:15
MethodInfo Method
Definition Delegate.cs:23
MulticastDelegate(object target, string method)

References System.MulticastDelegate._invocationCount, System.MulticastDelegate._invocationList, System.Delegate._methodBase, System.array, System.Runtime.Serialization.Dictionary, System.Delegate.FindMethodHandle(), System.RuntimeMethodHandle.GetDeclaringType(), System.RuntimeType.GetMethodBase(), System.RuntimeTypeHandle.HasInstantiation(), System.RuntimeTypeHandle.IsGenericTypeDefinition(), System.MulticastDelegate.IsUnmanagedFunctionPtr(), and System.Delegate.Method.