Pointer(interList.Items[i]) := nil;
可惜的是,编译错误“[Error] XXXX.pas(XX): Left side cannot be assigned to”。
然后我们试一下array。
interList: Array of I1;
动态数组是不要释放的。好像很好用,但是编译器释放它时还是会对每个元素置为nil的,而且是作为接口,仍然有非法地址访问错误的可能。可以这样
for i := Low(arr) to High(arr) do
Pointer(arr[i]) := nil;
但是这毕竟是违反编码习惯的,而且每次使用都要记得作,不记得作也可能不会马上出错,所以有可能成为隐患。
最后,就是使用TList。不过TList中是指针,所以Add时必须这样
procedure XXX.Add(AIntf: I1)
Begin
InterList.Add(Pointer(AIntf));
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/