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:
intdoublestringboolDateTimeStringListStringListListVariantList
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;
}