Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Object.GetType méthode ()

 

Obtient le Type de l'instance actuelle.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public Type GetType()

Valeur de retour

Type: System.Type

Type exact de l'instance actuelle au moment de l'exécution.

Étant donné que System.Object est la classe de base pour tous les types dans le système de type .NET Framework, le GetType méthode peut être utilisée pour retourner Type objets qui représentent tous les types .NET Framework. Le .NET Framework reconnaît les cinq catégories de types suivantes :

Pour deux objets x et y qui ont des types de runtime identiques, Object.ReferenceEquals(x.GetType(),y.GetType()) retourne true. L’exemple suivant utilise le GetType méthode avec la ReferenceEquals méthode pour déterminer si une valeur numérique est du même type que les deux autres valeurs numériques.

using System;

public class Example
{
   public static void Main()
   {
      int n1 = 12;
      int n2 = 82;
      long n3 = 12;

      Console.WriteLine("n1 and n2 are the same type: {0}",
                        Object.ReferenceEquals(n1.GetType(), n2.GetType()));
      Console.WriteLine("n1 and n3 are the same type: {0}",
                        Object.ReferenceEquals(n1.GetType(), n3.GetType()));
   }
}
// The example displays the following output:
//       n1 and n2 are the same type: True
//       n1 and n3 are the same type: False      
System_CAPS_noteRemarque

Pour déterminer si un objet est un type spécifique, vous pouvez utiliser le mot clé de comparaison du type de votre langage ou construire. Par exemple, vous pouvez utiliser la TypeOf…Is construire en Visual Basic ou is (mot clé) en c#.

Le GetType méthode est héritée par tous les types qui dérivent de Object. Cela signifie que, en plus d’utiliser le mot clé de comparaison de votre propre langage, vous pouvez utiliser la GetType méthode pour déterminer le type d’un objet particulier, comme le montre l’exemple suivant.

using System;

public class Example
{
   public static void Main()
   {
      object[] values = { (int) 12, (long) 10653, (byte) 12, (sbyte) -5,
                         16.3, "string" }; 
      foreach (var value in values) {
         Type t = value.GetType();
         if (t.Equals(typeof(byte)))
            Console.WriteLine("{0} is an unsigned byte.", value);
         else if (t.Equals(typeof(sbyte)))
            Console.WriteLine("{0} is a signed byte.", value);
         else if (t.Equals(typeof(int)))   
            Console.WriteLine("{0} is a 32-bit integer.", value);
         else if (t.Equals(typeof(long)))   
            Console.WriteLine("{0} is a 32-bit integer.", value);
         else if (t.Equals(typeof(double)))
            Console.WriteLine("{0} is a double-precision floating point.", 
                              value);
         else
            Console.WriteLine("'{0}' is another data type.", value);
      }
   }
}
// The example displays the following output:
//    12 is a 32-bit integer.
//    10653 is a 32-bit integer.
//    12 is an unsigned byte.
//    -5 is a signed byte.
//    16.3 is a double-precision floating point.
//    'string' is another data type.

Le Type objet expose les métadonnées associées à la classe de courant Object.

L’exemple de code suivant montre que GetType retourne le type de runtime de l’instance actuelle.

using System;

public class MyBaseClass {
}

public class MyDerivedClass: MyBaseClass {
}

public class Test 
{
   public static void Main() 
   {
      MyBaseClass myBase = new MyBaseClass();
      MyDerivedClass myDerived = new MyDerivedClass();
      object o = myDerived;
      MyBaseClass b = myDerived;

      Console.WriteLine("mybase: Type is {0}", myBase.GetType());
      Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
      Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
      Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType());
   }
}
// The example displays the following output:
//    mybase: Type is MyBaseClass
//    myDerived: Type is MyDerivedClass
//    object o = myDerived: Type is MyDerivedClass
//    MyBaseClass b = myDerived: Type is MyDerivedClass 

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: