Share via


typeof (référence C#)

Sert à obtenir l'objet System.Type d'un type. Une expression typeof prend la forme suivante :

System.Type type = typeof(int);

Notes

Pour obtenir le type d'exécution d'une expression, vous pouvez utiliser la méthode GetType du .NET Framework, comme dans l'exemple suivant :

int i = 0;
System.Type type = i.GetType();

L'opérateur typeof ne peut pas être surchargé.

L'opérateur typeof peut également être utilisé sur les types génériques ouverts. Les types ayant plusieurs paramètres de type doivent présenter le nombre approprié de virgules dans leur spécification. L'exemple suivant indique comment déterminer si le type de retour d'une méthode est un IEnumerable<T> générique. Supposez que la méthode est une instance de type MethodInfo :

string s = method.ReturnType.GetInterface
    (typeof(System.Collections.Generic.IEnumerable<>).FullName);

Exemple

public class ExampleClass
{
   public int sampleMember;
   public void SampleMethod() {}

   static void Main()
   {
      Type t = typeof(ExampleClass);
      // Alternatively, you could use
      // ExampleClass obj = new ExampleClass();
      // Type t = obj.GetType();

      Console.WriteLine("Methods:");
      System.Reflection.MethodInfo[] methodInfo = t.GetMethods();

      foreach (System.Reflection.MethodInfo mInfo in methodInfo)
         Console.WriteLine(mInfo.ToString());

      Console.WriteLine("Members:");
      System.Reflection.MemberInfo[] memberInfo = t.GetMembers();

      foreach (System.Reflection.MemberInfo mInfo in memberInfo)
         Console.WriteLine(mInfo.ToString());
   }
}
/*
 Output:
    Methods:
    Void SampleMethod()
    System.String ToString()
    Boolean Equals(System.Object)
    Int32 GetHashCode()
    System.Type GetType()
    Members:
    Void SampleMethod()
    System.String ToString()
    Boolean Equals(System.Object)
    Int32 GetHashCode()
    System.Type GetType()
    Void .ctor()
    Int32 sampleMember
*/

Cet exemple utilise la méthode GetType pour déterminer le type utilisé pour contenir le résultat d'un calcul numérique. Cela dépend des besoins en mémoire du nombre résultant.

class GetTypeTest
{
    static void Main()
    {
        int radius = 3;
        Console.WriteLine("Area = {0}", radius * radius * Math.PI);
        Console.WriteLine("The type is {0}",
                          (radius * radius * Math.PI).GetType()
        );
    }
}
/*
Output:
Area = 28.2743338823081
The type is System.Double
*/

Spécification du langage C#

Pour plus d'informations, consultez la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.

Voir aussi

Référence

Mots clés C#

is (référence C#)

Mots clés des opérateurs (référence C#)

System.Type

Concepts

Guide de programmation C#

Autres ressources

Référence C#