typeof es una palabra clave de operador que se utiliza para obtener un tipo en tiempo de compilación. O, en otras palabras, este operador se usa para obtener el objeto System.Type para un tipo. Este operador toma el propio Tipo como argumento y devuelve el tipo marcado del argumento.
Puntos importantes:
- El operando del operador typeof es siempre un tipo de parámetro o nombre del tipo. No contiene variable.
- No está permitido sobrecargar el operador typeof .
- Está permitido usar el operador typeof en tipos genéricos abiertos.
- Se permite usar el operador typeof en tipos acotados o no acotados.
Sintaxis:
System.Type type = typeof(int);
Aquí, tipo es el tipo que se obtiene.
Ejemplo :
CSharp
// C# program to illustrate the // concept of typeof operator using System; class GFG { // Here store Type as a field static Type a = typeof(double); // Main method static void Main() { // Display the type of a Console.WriteLine(a); // Display the value type Console.WriteLine(typeof(int)); // Display the class type Console.WriteLine(typeof(Array)); // Display the value type Console.WriteLine(typeof(char)); // Display the array reference type Console.WriteLine(typeof(int[])); } }
Producción:
System.Double System.Int32 System.Array System.Char System.Int32[]
Diferencia entre el operador typeof y el método GetType
tipo de operador | Método GetType |
---|---|
Toma el propio Tipo como argumento y devuelve el tipo marcado del argumento. | Solo se invoca en la instancia del tipo. |
Se utiliza para obtener un tipo que se conoce en tiempo de compilación. | Se utiliza para obtener el tipo de un objeto en tiempo de ejecución. |
No se puede utilizar en una instancia. | Se puede utilizar en instancia. |
Ejemplo:
CSharp
// C# program to illustrate the // difference between typeof // operator and GetType method using System; public class GFG { // Main method static public void Main() { string s = "Geeks"; // using typeof operator Type a1 = typeof(string); // using GetType method Type a2 = s.GetType(); // checking for equality Console.WriteLine(a1 == a2); // taking a type object object obj = "Hello"; // using typeof operator Type b1 = typeof(object); // using GetType method Type b2 = obj.GetType(); // checking for equality // it will return False as // GetType method is used // to obtain run-time type Console.WriteLine(b1 == b2); } }
Producción:
True False
Explicación: Aquí, Escriba b1 = typeof(objeto); esto devolverá System.Object pero Escriba b2 = obj.GetType(); devolverá System.String . Como, en el momento de la compilación, solo se crea la referencia del tipo de objeto, pero en el tiempo de ejecución, la string («Hola») en realidad se almacena en ella.
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA