【发布时间】:2021-06-19 16:53:29
【问题描述】:
我有 TKeyframe 作为一个类,Keyframes: TObjectlist<TKeyframe> 在一个基类 TTrack 中,但在 TTrack 的后代中,Keyframes 包含带有附加字段和适当类型转换的 TKeyframe 的后代。
TTrack 具有调用 Keyframes.Move 和 Keyframes.Delete 方法的方法,这些方法通常似乎与 TKeyframe 的后代一起正常工作。删除不在列表末尾的关键帧似乎工作正常,除非在特定情况下,当下一个关键帧中的一个附加字段被我没有的后续操作设置为 NaN 时可以隔离。
TList Delete 的源代码使用 System.Move 来移动只是类的指针,所以对我来说它看起来很安全。那么与 T 的后代一起使用是否安全? 对于要移动的项目,TList Move 会强制转换为 T,所以看起来更狡猾,但到目前为止我还没有遇到任何问题。
【问题讨论】: