Delphi在线文档说
"避免在应用程序代码中使用ClassType ".
但是,有许多地方需要类类型.例如,当程序使用System.Contnrs类时.TClassList,我需要一个对象的ClassType在IndexOf()的参数中传递它.
ClassType文档中此建议背后的原因是什么?
Dav*_*nan 18
给出这个建议的最明显的原因是想要编写如下代码的程序员:
if obj.ClassType = TStringList then
....
Run Code Online (Sandbox Code Playgroud)
如果对象的类是,则该条件仅评估true TStringList.但是,通常您会希望运行条件代码TStringList和任何后代.在这种情况下你写:
if obj is TStringList then
....
Run Code Online (Sandbox Code Playgroud)
如果您需要知道实例是什么类,那么ClassType您应该使用它.如果要维护TClassList实例中的类列表,则可以随意使用它ClassType来获取实例的元类.
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |