var
v1:Variant;
i:integer;
begin
v1:='1234'; //string value
i:=v1;
v1:='five'; //string value
i:=v1; //引发EvariantError异常,'five'不是数字型的
end;
为什么当i:=v1不会引发EvariantError异常?并且后面这条赋值语句也不会触发异常,这是为什么?
v1:Variant;
i:integer;
begin
v1:='1234'; //string value
i:=v1;
v1:='five'; //string value
i:=v1; //引发EvariantError异常,'five'不是数字型的
end;
为什么当i:=v1不会引发EvariantError异常?并且后面这条赋值语句也不会触发异常,这是为什么?
不让编译器优化。试试,如果还不报异常,那就是他们是赋值相容的。