O'Reilly logo

C# in a Nutshell by Peter Drayton, Ted Neward, Ben Albahari

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

MethodBase

Synopsis

This is an abstract base class representing executable method calls, which fall into two categories: regular methods and constructors. GetCurrentMethod() and GetMethodFromHandle() are static methods that return the currently executing method and a method represented by a System.RuntimeMethodHandle object, respectively. The MethodHandle returns the handle for a specific method instance.

The properties prefixed by Is return boolean values, allowing inspection of the modifiers of the reflected method. Only some require explanation: IsAssembly returns true if the method is internal, and IsFamily returns true for protected methods. If a member of exactly the same name and signature is hidden by a derived class, IsHideBySig is true. IsSpecialName indicates if this method has a special name, such as a property accessor, get_PropertyName or set_PropertyName.

Similarly, the attributes on a given method can be inspected from the Attributes property. GetParameters() returns the parameters of a method or constructor, and GetMethodImplementationFlags() returns the MethodImplAttributes flags set on the method.

In addition to introspecting on a method, the MethodBase also allows for reflective invocation of a method, using the Invoke() method. Note that Invoke() requires both the object instance against which to invoke the method (or null if the method is declared static), as well as an array of object references containing the arguments to the method, in their proper ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required