If the currently executing method is defined on a generic type, the MethodInfo that is returned by GetCurrentMethod is obtained from the generic type definition (that is, MethodInfo..::.ContainsGenericParameters returns true). Therefore, it does not reflect the type arguments that were used when the method was called. For example, if a method M() is defined on a generic type C<T> (C(Of T) in Visual Basic), and GetCurrentMethod is called from C<string>.M(), then GetCurrentMethod returns C<T>.M() (C(Of T).M() in Visual Basic).
If the currently executing method is a generic method, GetCurrentMethod returns the generic method definition. If the generic method is defined on a generic type, the MethodInfo is obtained from the generic type definition.