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/

10-10 14:04