variant
variant
type to store data types which are not known in advance.
For example, the AsyncGetProcessResult
function retrieves the result of any running processes. The result type (for example, int
, string
, or double
) is unknown and the data type of the return value is variant
.
These BI# types can be stored in the variant
type:
int
double
string
bool
DateTime
StringList
StringListList
VariantList
To use a value that does not support a specific variant
type, you must convert the variant
value to the concrete type. The conversion is done using the as
operator:
string s = x as string;
To see the data type encapsulated in a variant
, you must use the is
operator. This enables you to cast the variant
to a specific type:
variant v = 10;
if (v is string) // returns false
{
string sValue = v as string;
}
if (v is int) // returns true
{
int iValue = v as int;
}
If you try to convert variant
to a particular type, and the type of encapsulated data is different, an exception is thrown:
variant v = "Some text....";
double dValue = v as double; // this produces an exception
This example shows how to use variant
when retrieving a result of asynchronous process:
variant vresult = AsyncGetProcessResult("afe123ophf");
if (vresult is string)
{
string s = vresult as string;
}
else if (vresult is double)
{
double d = vresult as double;
}