typeof

Source: Wikipedia, the free encyclopedia.

typeof, alternately also typeOf, and TypeOf, is an

variable
. This is useful when constructing programs that must accept multiple types of data without explicitly specifying the type.

In languages that support

dynamic type of the object. That is, it returns the true, original type of the object, irrespective of any type casting. In these languages, the typeof operator is the method for obtaining run-time type information
.

In other languages, such as

typeid
.

Examples

In a non-standard (GNU) extension of the C programming language, typeof may be used to define a general macro for determining the maximum value of two parameters:

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

In C#:

// Given an object, returns if it is an integer.
// The "is" operator can be also used to determine this.
public static bool IsInteger(object o)
{
    return o.GetType() == typeof(int);
}

As of C23 typeof is a part of the C standard. The operator typeof_unqual was also added which is the same as typeof, except it removes cvr-qualification and atomic qualification.[6][7] In

VB.NET
, the C# variant of "typeof" should be translated into the VB.NET's GetType method. The TypeOf keyword in VB.NET is used to compare an object reference variable to a data type.

The following example uses TypeOf...Is expressions to test the type compatibility of two object reference variables with various data types.

Dim refInteger As Object = 2

MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)

Dim refForm As Object = New System.Windows.Forms.Form

MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)

In JavaScript:

function isNumber(n)
{
  return ( typeof n === 'number' );
}

In TypeScript:[8]

function (param: typeof existingObject) { ... }
let newObject: typeof existingObject;

See also

References

  1. MSDN. Archived from the original
    on Nov 28, 2016.
  2. ^ "typeof (C#)". MSDN. Archived from the original on Sep 10, 2016.
  3. ^ "Declarations - D Programming Language 1.0". Digital Mars. Dec 30, 2012. Archived from the original on Oct 7, 2023.
  4. ^ "Typeof" in "Using the GNU Compiler Collection".
  5. ^ Meneide, JeanHeyd (2021-03-07). "Not-So-Magic - typeof(…) in C | r2". Open Standards. Retrieved 2021-12-02.
  6. ^ "N2927: Not-so-magic - typeof for C". Open Standards. 2022-02-02. Archived from the original on Dec 1, 2023.
  7. ^ "Consider renaming remove_quals" (PDF). Open Standards. 2022-02-06. Archived (PDF) from the original on Feb 17, 2024.
  8. ^ "Using 'typeof' to infer a type". Learn TypeScript. Retrieved 2022-01-28.
This page is based on the copyrighted Wikipedia article: Typeof. Articles is available under the CC BY-SA 3.0 license; additional terms may apply.Privacy Policy