【发布时间】:2011-11-07 10:07:38
【问题描述】:
我一直认为 Delphi 中的对象实际上是对内存位置的引用,而我曾想象这些内存位置被存储为指针变量。
现在,我想从一个对象中创建一个 TValue。考虑一下:
TValue.Make(AObject, TypeInfo(TMyObject), val);
在哪里val: TValue。这行不通。事实上,后续使用val 会导致访问冲突。但是,如果我们使用 address-of 运算符,如下所示:
TValue.Make(@AObject, TypeInfo(TMyObject), val);
一切都很好。对我来说,这是出乎意料的,因为我认为 AObject (在引擎盖下)实际上是一个指针。我错了还是这是 TValue.Make 方法的怪癖?有人可以请教我吗?
【问题讨论】: