Help Center›FreeBASIC
TypeOfkeyword
Returns the type of a variable.
Syntax
TypeOf ( variable | datatype )
Parameters
| Name | Description | |
|---|---|---|
variable | A variable of any type. | |
datatype | A DataType. |
Description
TypeOf is a compiler intrinsic that replaces itself with the type of the variable passed to it. It can either be used in a variable declaration (Example 1) or it can be used in the preprocessor for comparison, printing. (Example 2)TypeOf also supports passing any intrinsic data type, or user-defined type (and its data fields), not only variables defined as those types. Also supported are expressions, the type is inferred from the expression (much like Var).If there is both a user defined type and a variable visible with the same name in the current scope, the user defined type takes precedence over the variable. To ensure that the
TypeOf takes the variable instead of the user defined type, wrap the argument to TypeOf with parentheses to force it to be seen as an expression. For example Typeof((variable)).Remarks
Version
- Before fbc 1.10.0,
TypeOfwas not returning the type of the non-static member procedures of a UDT.
- Before fbc 1.08.0:
TypeOf was not returning the type of the data fields of a UDT.When a variable from a given namespace was accessed with the namespace's name prefix, the argument to
TypeOf had to be wrapped with parentheses to force it to be seen as an expression. For example Typeof((namespace_name.variable)).Dialect Differences
- Not available in the -lang qb dialect unless referenced with the alias
__Typeof.
Differences from QB
- New to FreeBASIC
See also
Example
Example 1:
Dim As Integer foo
Dim As TypeOf(67.2) bar '' '67.2' is a literal double
Dim As TypeOf( foo + bar ) teh_double '' double + integer results in double
Print SizeOf(teh_double)
Dim As String foo
#print TypeOf(foo)
#if TypeOf(foo) = TypeOf(Integer)
#print "Never happened!"
#endif
#if TypeOf(foo) = TypeOf(String)
#print "It's a String!"
#endif
Reference
- Documented in KeyPgTypeof.html