Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Object.GetType ()

 

Ottiene l'oggetto Type dell'istanza corrente.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public Type GetType()

Valore restituito

Type: System.Type

Tipo esatto di runtime dell'istanza corrente.

Poiché System.Object è la classe base per tutti i tipi nel sistema di tipi .NET Framework, il GetType metodo può essere utilizzato per restituire Type gli oggetti che rappresentano tutti i tipi di .NET Framework. .NET Framework riconosce le seguenti cinque categorie di tipi:

Per due oggetti x e y con tipi di runtime identici, Object.ReferenceEquals(x.GetType(),y.GetType()) restituisce true. L'esempio seguente usa il GetType metodo con il ReferenceEquals metodo per determinare se un valore numerico è dello stesso tipo altri due valori numerici.

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_noteNota

Per determinare se un oggetto è di un tipo specifico, è possibile utilizzare la parola chiave o il costrutto usati dal tuo linguaggio per confrontare i tipi. Ad esempio, è possibile utilizzare il costrutto TypeOf…Is in Visual Basic oppure la parola chiave is in C#.

Il GetType metodo viene ereditato da tutti i tipi che derivano da Object. Ciò significa che, oltre a utilizzare parole chiave di confronto della lingua, è possibile utilizzare il GetType metodo per determinare il tipo di un oggetto specifico, come illustrato nell'esempio seguente.

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.

Il Type oggetto espone i metadati associati alla classe dell'oggetto corrente Object.

Esempio di codice seguente viene dimostrato che GetType restituisce il tipo di runtime dell'istanza corrente.

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 

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: