Retrieving a Type Directly
You can also retrieve a Type
class by name (without
needing an instance) using the static method GetType
on
the Type
class. When specifying which type to retrieve,
you can provide either the namespace-qualified name of the type, or the assembly-qualified
name, as follows:
Type t = Type.GetType("System.Int32"); Type t2 = Type.GetType("MyNamespace.MyType, MyAssembly);
In the case in which you provide only the namespace-qualified name, GetType
looks first in the calling assembly, and then in mscorlib.dll.
Finally, C# provides the typeof
operator, which returns the Type
class
for any type known at compile time:
Type t = typeof(System.Int32);
The main difference between these two approaches is that Type.GetType
is
evaluated at runtime and thus is more dynamic, binding to a type in an assembly
by name; while the typeof
operator is evaluated at compile
time and thus is slightly faster, binding to a type in a specific assembly
version via a type token.
Get C# in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.