13.4 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.
|