tipo de

typeof , también conocido como typeOf y TypeOf , es un operador que se proporciona en varios lenguajes de programación para determinar el tipo de datos de una variable . Esto resulta útil cuando se construyen programas que deben aceptar varios tipos de datos sin especificar explícitamente el tipo.

En los lenguajes que admiten polimorfismo y conversión de tipos , el operador typeof puede tener uno de dos significados distintos cuando se aplica a un objeto . En algunos lenguajes, como Visual Basic , [1] el operador typeof devuelve el tipo dinámico del objeto. Es decir, devuelve el tipo original y verdadero del objeto, independientemente de cualquier conversión de tipos. En estos lenguajes, el operador typeof es el método para obtener información de tipo en tiempo de ejecución .

En otros lenguajes, como C# [2] o D [3] y, en cierta medida, en C (como parte de extensiones no estándar y revisiones estándar propuestas ), [4] [5] el operador typeof devuelve el tipo estático del operando. Es decir, evalúa el tipo declarado en ese instante en el programa, independientemente de su forma original. Estos lenguajes suelen tener otras construcciones para obtener información de tipo en tiempo de ejecución, como typeid .

Ejemplos

En una extensión no estándar (GNU) del lenguaje de programación C , typeof se puede utilizar para definir una macro general para determinar el valor máximo de dos parámetros:

#define max(a,b) ({ tipo de (a) _a = (a); tipo de (b) _b = (b); _a > _b ? _a : _b; })

# :

// Dado un objeto, devuelve si es un entero. // El operador "es" también se puede utilizar para determinar esto. public static bool IsInteger ( object o ) { return o . GetType () == typeof ( int ); }        

A partir de C23, typeof es parte del estándar C. También se agregó el operador typeof_unqual, que es el mismo que typeof, excepto que elimina la calificación cvr y la calificación atómica. [6] [7] En VB.NET , la variante C# de "typeof" debe traducirse al método GetType de VB.NET. La palabra clave TypeOf en VB.NET se usa para comparar una variable de referencia de objeto con un tipo de datos.

El siguiente ejemplo utiliza expresiones TypeOf...Is para probar la compatibilidad de tipos de dos variables de referencia de objeto con varios tipos de datos.

Dim refInteger como objeto = 2     MsgBox ( "¿El tipo de objeto[Entero] es entero? " y el tipo de refInteger es entero ) MsgBox ( "¿El tipo de objeto[Entero] es doble? " y el tipo de refInteger es doble )          Dim refForm As Object = Nuevo Sistema . Windows . Formularios . Formulario      MsgBox ( "¿El tipo de objeto [ Formulario ] es Formulario? " y el tipo de refForm es System.Windows.Forms.Form ) MsgBox ( "¿El tipo de objeto [ Formulario ] es Etiqueta? " y el tipo de refForm es System.Windows.Forms.Label ) MsgBox ( " ¿ El tipo de objeto [ Formulario] es Control? " y el tipo de refForm es System.Windows.Forms.Control ) MsgBox ( " ¿ El tipo de objeto [ Formulario] es IComponent ? " y el tipo de refForm es System.ComponentModel.IComponent )                    

En JavaScript :

función esNumero ( n ) { return ( typeof n === 'numero' ); }        

En TypeScript : [8]

función ( parámetro : tipo de objeto existente ) { ... }      
deje que newObject : tipo de existingObject ;   

Véase también

Referencias

  1. ^ "Operador TypeOf (Visual Basic)". MSDN . Archivado desde el original el 28 de noviembre de 2016.
  2. ^ "typeof (C#)". MSDN . Archivado desde el original el 10 de septiembre de 2016.
  3. ^ "Declaraciones - Lenguaje de programación D 1.0". Digital Mars . 30 de diciembre de 2012. Archivado desde el original el 7 de octubre de 2023.
  4. ^ "Typeof" en "Usando la colección de compiladores GNU".
  5. ^ Meneide, JeanHeyd (7 de marzo de 2021). «Not-So-Magic - typeof(…) in C | r2». Estándares abiertos . Consultado el 2 de diciembre de 2021 .
  6. ^ "N2927: No tan mágico - typeof para C". Estándares abiertos . 2022-02-02. Archivado desde el original el 1 de diciembre de 2023.
  7. ^ "Considere cambiar el nombre de remove_quals" (PDF) . Estándares abiertos . 2022-02-06. Archivado (PDF) del original el 17 de febrero de 2024.
  8. ^ "Usar 'typeof' para inferir un tipo". Aprenda TypeScript . Consultado el 28 de enero de 2022 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Tipode&oldid=1211286391"