Reflection is most commonly used to learn about types or to manipulate objects using information that is typically known only at run time, not at compile time. Obviously, this dynamic exploring and manipulation of types and objects comes at a performance hit, so you should use it sparingly. In addition, a compiler can’t help you locate and fix programming errors related to type safety when you’re using reflection.
System.Type type is your starting point for doing type and object manipulations.
System.Type is an abstract base type derived from
System.Reflection.MemberInfo (because a
Type can be a member of another type). The FCL provides a few types that are derived from