This C# class
describes data types—it stores type information in a variable, property or field. The Type class
represents the program's metadata (its structure).
For some background, the Type class
is found in the System
namespace. You can use Type variables in the same way as other variables such as string
or int
.
Here we see you can assign Type variables to the result of a typeof
expression. And methods receive a Type parameter as an argument.
typeof
operator and the GetType
method. We call the Test()
method and pass the Types to it.Main
method uses Type variables and assigns them to the result of evaluations of the typeof
operator.using System; class Program { static void Main() { // Use type variables. // ... Then pass the variables as an argument. Type type1 = typeof(string[]); Type type2 = "string".GetType(); Type type3 = typeof(Type); Test(type1); Test(type2); Test(type3); } static void Test(Type type) { // Print some properties of the Type formal parameter. Console.WriteLine("IsArray: {0}", type.IsArray); Console.WriteLine("Name: {0}", type.Name); Console.WriteLine("IsSealed: {0}", type.IsSealed); Console.WriteLine("BaseType.Name: {0}", type.BaseType.Name); Console.WriteLine(); } }IsArray: True Name: String[] IsSealed: True BaseType.Name: Array IsArray: False Name: String IsSealed: True BaseType.Name: Object IsArray: False Name: Type IsSealed: False BaseType.Name: MemberInfo
In the C# language, the Type class
is not used in the inheritance and class
-based system. Instead, classes inherit from the Object type.
The "Type" type is a representation of the metadata, which is data about the program. It can be thought of as information about the program.
Type objects can be stored as fields and static
fields. They can be passed as arguments and used as local variables. Some functions in C# receive Type arguments.