变体类型可以容纳多种不同的数据类型。
当对其进行赋值操作时,变体类型会根据所赋值的类型将其内部结构转换为能容纳这种结构的类型。
计算机中,一个变体类型的变量占16个字节。前8个字节用来存储变量类型码,后8个字节用来存储变量值,或者指向变量的指针。
Delphi提供两种方式获取变体类型变量中的数据的实际类型。
TVarData(v).Type;
VarType(v);
system单元中定义了每种类型对应的类型码,使用时可以自行查询。
变体变量定义后,初值为常量Unassinged。 而常用的预定义常量NULL在变体类型中表示未知的值或由于某种错误丢失的值。
默认的情况下,Null值小于包括Unassigned在内的任何值,但这并不是绝对的。Delphi中提供了两个预定义变量:NullEquallityRule
与NullMagnitudeRule来设定Null与其他值进行 “=”比较与“大小”比较时的行为。
变体变量与普通类型变量之间赋值兼容。
变体类型的转换:
变体变量的类型转换有两种情况:一是将变体变量转换为其他类型的变量,而是将变体变量的值转换为其他类型的值。
例子看了好久,没有看明白,等明白了两中情况后补写。