zoukankan      html  css  js  c++  java
  • delphi2006语言新特性:Record类型高级用法

    delphi语言在传统的Records类型的基础上增加了许多像类一样的高级功能,如:Records可以有属性和方法(包括构造constructors),类属性,类方法,类静态字段和内嵌类型。下面这个示例演示定义一个功能像类一样的Records:

    type
    TMyRecord = record
    type
    TInnerColorType = Integer;
    var
    Red: Integer;
    class var
    Blue: Integer;
    procedure printRed();
    constructor Create(val: Integer);
    property RedProperty: TInnerColorType read Red write Red;
    class property BlueProp: TInnerColorType read Blue write Blue;
    end;

    constructor TMyRecord.Create(val: Integer);
    begin
    Red := val;
    end;

    procedure TMyRecord.printRed;
    begin
    writeln('Red: ', Red);
    end;

    虽然现在records能实现许多类的特性,但它与类之间还是有一些不同:
    1 records不支持继承
    2 records能含有variant parts(呵呵,不知翻译成什么能说明白,就是case部分),类不可以
    3 records是值类型,可以通过赋值拷贝,类是参考类型,因此不能通过赋值来拷贝。
    4 records在win32和.net上允许操作符重载,类仅在.net上支持操作符重载
    5 records使用一个缺省的没有参数的构造函数(constructor)自动创建,而类必须明确的创建。在record中用户定义的构造函数必须有一个或多个参数。
    6 record类型不能有析构函数(destructors)
    7 虚方法(那些指定了virtual、dynamic和message关键字的)不能使用在record类型中
    8 record类型在win32开台上不能实现接口,在.net平台上能实现接口

  • 相关阅读:
    重写/覆盖基类的事件
    关于“日志”的输出控制
    WPF中DataGrid垂直滚动条滚动后导致每行CheckBox选择错乱
    WPF窗体应用程序开发
    C# 操作自定义config文件
    WPF绑定数据源之RelativeSource
    C# http请求 设置代理(标题可以作为搜索关键字)
    前端加载特效
    实现不同的项目,用不同的git 账号提交
    Casbin 使用记录
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3131542.html
Copyright © 2011-2022 走看看