我如何使用对象typecast
参数制作一个classType
?
(obj as obj.classType).items[i]...//obj.classType = TList<myType>
此代码被编译器拒绝。但是,此外,无论对象具有什么类(TList
),我都需要访问该对象的属性:
system.classes.TList
system.generics.collections.TList<T>
程序中有一个实际上属于类TList<T>
的对象,我担心转换为system.classes.TList
类型的对象可能会导致程序中的某些错误。
答案 0 :(得分:1)
不可能像这样打字。那是因为Delphi是一种静态类型的语言。
想象一下,您可以编写如下代码:
(obj as obj.classType).items
由于obj.classType
的值在编译时未知,因此编译器无法在编译时知道items
是否存在,更不用说如何访问它了,等等。
对于您有关列表类的目标,泛型和非泛型列表类型在TObject
之外没有共同的祖先。您尝试的事情根本不可能。
无论您遇到什么问题,都需要找到其他解决方案。