Delphi在线文档说
但是,在许多地方都需要类类型。例如,当程序使用System.Contnrs类时。 TClassList,我需要一个对象的ClassType才能在IndexOf()的参数中传递它。
ClassType文档中此建议背后的原因是什么?
最佳答案
之所以给出此建议,最明显的原因是希望编写如下代码的程序员:
if obj.ClassType = TStringList then
....
仅当对象的类为
TStringList
时,该条件的评估结果才为true。但是,通常,您希望条件代码针对TStringList
及其任何后代运行。在这种情况下,您将编写:if obj is TStringList then
....
如果您需要知道实例是什么类,则应使用
ClassType
。如果要维护TClassList
实例中的类列表,请随时使用ClassType
获取实例的元类。关于delphi - 为什么要避免在应用程序代码中使用ClassType?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16896039/