Export (0) Print
Expand All

7.5.11 The typeof operator

Visual Studio .NET 2003

The typeof operator is used to obtain the System.Type object for a type.

typeof-expression:
typeof   (   type   )
typeof   (   void   )

The first form of typeof-expression consists of a typeof keyword followed by a parenthesized type. The result of an expression of this form is the System.Type object for the indicated type. There is only one System.Type object for any given type. This means that for type T, typeof(T) == typeof(T) is always true.

The second form of typeof-expression consists of a typeof keyword followed by a parenthesized void keyword. The result of an expression of this form is the System.Type object that represents the absence of a type. The type object returned by typeof(void) is distinct from the type object returned for any type. This special type object is useful in class libraries that allow reflection onto methods in the language, where those methods wish to have a way to represent the return type of any method, including void methods, with an instance of System.Type.

The example

using System;
class Test
{
   static void Main() {
      Type[] t = {
         typeof(int),
         typeof(System.Int32),
         typeof(string),
         typeof(double[]),
         typeof(void)
      };
      for (int i = 0; i < t.Length; i++) {
         Console.WriteLine(t[i].FullName);
      }
   }
}

produces the following output:

System.Int32
System.Int32
System.String
System.Double[]
System.Void

Note that int and System.Int32 are the same type.

Show:
© 2015 Microsoft