• DELPHI 的 {$M +} 和{$M -}


    在TPersistent的声明中多了M编译开关,当{$M +} 与{$TYPEINFO ON} 作用是一样的, 而{$M -} 与{$TYPEINFO OFF}
    相同。当一个类在{$M +} 和{$M -}间声明时,程序编译器将为类生成与RTTI(Runtime Type Information)相关的代码来完成
    类的published的属性,方法和事件的存储工作。并且该类子类的published属性,方法和事件也具有存取特性。如果一个类
    或祖先类都没有在{$M +} 和{$M -}间声明时,则该类不能有published的实行,事件和方法。

    例如 System.Classes 中的

    {$M+}

      TPersistent = class(TObject)
      private
        procedure AssignError(Source: TPersistent);
      protected
        procedure AssignTo(Dest: TPersistent); virtual;
        procedure DefineProperties(Filer: TFiler); virtual;
        function GetOwner: TPersistent; dynamic;
      public
        destructor Destroy; override;
        procedure Assign(Source: TPersistent); virtual;
        function GetNamePath: string; dynamic;
      end;

    {$M-}

  • 相关阅读:
    PostgreSQL数据库笔记
    LayUI
    Spring
    Mybatis
    Mybatis生成
    server服务器信息页面添加步骤
    Java数据类型和MySql数据类型对应表
    空字符串
    json解析尖括号<>
    JSON--List集合转换成JSON对象
  • 原文地址:https://www.cnblogs.com/yangxuming/p/6703995.html
Copyright © 2020-2023  润新知