Delphi 为什么我应该避免在应用程序代码中使用类类型?
德尔福在线文档说 “避免在应用程序代码中使用” 但是,在许多地方需要类类型。例如,当一个程序使用类System.Contnrs时,我需要一个对象的类类型将其传递到IndexOf()的参数中Delphi 为什么我应该避免在应用程序代码中使用类类型?,delphi,oop,Delphi,Oop,德尔福在线文档说 “避免在应用程序代码中使用” 但是,在许多地方需要类类型。例如,当一个程序使用类System.Contnrs时,我需要一个对象的类类型将其传递到IndexOf()的参数中 类类型文档中此建议背后的原因是什么?给出此建议的最明显原因是针对希望编写如下代码的程序员: if obj.ClassType = TStringList then .... 只有当对象的类为TStringList时,该条件才会计算为true。但是,您通常希望为TStringList和任何后代运行条件代码
类类型文档中此建议背后的原因是什么?给出此建议的最明显原因是针对希望编写如下代码的程序员:
if obj.ClassType = TStringList then
....
只有当对象的类为TStringList
时,该条件才会计算为true。但是,您通常希望为TStringList
和任何后代运行条件代码。在这种情况下,您可以写:
if obj is TStringList then
....
如果您需要知道实例是什么类,那么应该使用ClassType
。如果您在TClassList
实例中维护一个类列表,那么可以使用ClassType
获取实例的元类