Design Patterns Used by Reflection Classes
The most commonly used methods in the System.Reflection namespace use a consistent pattern. The members of the Module, Type, and MemberInfo classes use the design patterns shown in the following table.
MyInstance FindXxx(filter, filterCriteria)
Finds and returns a filtered list of types, or an empty array if no types matching the filter are implemented by the current type.
Returns the type that is uniquely specified by <parameters>. If no such type exists, the member returns a null reference (Nothing in Visual Basic). Note that <parameters> uniquely specifies an instance.
Returns all the public types. If no public types exist, the member returns an empty array.
Returns all the types specified by <parameters>. If no such types exist, the member returns an empty array. Note that <parameters> does not necessarily specify a unique instance.
Another common design pattern is the use of delegates. They are typically used in reflection to enable filtering of the results set for methods that return arrays of objects.