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平台上能实现接口

delphi2006语言新特性:Record类型高级用法相关推荐

  1. ​Python 3 新特性:类型注解——类似注释吧,反正解释器又不做校验

    ​Python 3 新特性:类型注解 Crossin ​ 上海交通大学 计算机应用技术硕士 95 人赞同了该文章 前几天有同学问到,这个写法是什么意思: def add(x:int, y:int) - ...

  2. Python 3 新特性:类型注解

    Python 3 新特性:类型注解 之前也看到这种写法,有人疑惑这个写法是什么意思: def add(x:int, y:int) -> int:return x + y 我们知道 Python ...

  3. 分析 C# 2.0 新特性 -- 空类型(Nullable Types)

    分析 C# 2.0 新特性  -- 空类型(Nullable Types) 在讨论C# 2.0 空类型前,先回顾一下.NET 1.0和.NET 1.1对于类型有下面这样的定义: ".NET  ...

  4. C++11语言新特性-《C++标准库(第二版)》读书笔记

    文章目录 3.1.1 微小但重要的语法提升 Template 表达式内的空格 nullptr 和std::nullptr_t 3.1.2 以auto 完成自动类型推导 3.1.3 一致性初始化(Uni ...

  5. mysql 双冒号_jdk8新特性之双冒号 :: 用法及详解

    jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function  ...

  6. java双冒号_jdk8新特性之双冒号 :: 用法及详解

    jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function ...

  7. Java8新特性Stream的常见用法

    目录 Stream简介 Stream的使用 创建流 (1) 通过Stream.of()将元素转化成流 (2)每个集合都可以通过调用 stream() 方法来产生一个流 使用举例 (1) 遍历/匹配(f ...

  8. Visual Basic 15语言新特性

    对于C#的两个重要特性元组和Ref返回值,Visual Basic 15提供了对等的实现.这两个特性都是"不完全的",但已经可以提供足够的变通方案,让VB应用程序可以消费使用了这些 ...

  9. swift语言新特性:可选值

    var  a?  此处的a就是个可选值,意思是该值可能是缺失的. 可选 使用可选(optionals)来处理值可能缺失的情况.可选表示: -有值,等于 x 或者 没有值 注意:C 和 Objectiv ...

  10. [易学C#]C#3.0语言新特性之扩展方法

    当我们需要对已有类的功能进行扩展时,我们通常会想到继承,继承已有类,然后为其加入新的行为.而C# 3.0中加入的扩展方法(Extension Methods)特性,则提供了另一种实现功能扩展的方式. ...

最新文章

  1. 网络带宽与传输性能的基本计算方法
  2. easyui 行编辑修改
  3. JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找
  4. BeetleX网关非法Url请求拦截插件
  5. composer查看当前镜像取消_国内全量镜像大全
  6. Activity的四种加载模式(转载)
  7. scorm课件学习状态
  8. AMOLED面板驱动芯片紧缺将持续至2022年
  9. Pythonseleniumtesseract自动化测试随机码、验证码(Captcha)的OCR识别解决方案参考
  10. SQL Server中的KILL SPID命令
  11. Gauss-Jordan法求逆矩阵
  12. BZOJ1815 SHOI2006有色图(Polya定理)
  13. 林轩田 《机器学习基石》学习笔记
  14. 中国互联网十大骨干网有哪些?了解互联网的真实网络结构
  15. python知识图谱智能问答_机器人之基于知识图谱的智能问答机器人
  16. android 列表倒计时,Android ListView列表实现倒计时
  17. 矿大赵银娣matlab,中国矿业大学考研研究生导师简介-蒋荣立
  18. SMLT中增加新的语言
  19. php 检测gif文件,识别gif文件,判断gif文件
  20. 成都理工大学c语言作业电脑,最新成都理工大学《C语言程序设计》笔试.docx

热门文章

  1. 易筋SpringBoot 2.1 | 第三十三篇:SpringBoot Reactor响应式编程实战二 Redis Lettuce
  2. python类创建多个实例是同一个实例_创建一个类的多个实例
  3. python字节码解析_简单入门python字节码混淆
  4. mysql读写分离中间件都有哪些_MySQL读写分离中间件Atlas
  5. DST(对话状态追踪)常用方法
  6. 感知机学习算法的原始形式
  7. python编程符号大全_2020 年最值得学习的 5 大 AI 编程语言
  8. K8S学习笔记之借助Minikube完成在windows环境下Kubernetes的单节点搭建-(超级简单)
  9. MySQL基本知识笔记
  10. 腾讯云安装javaweb环境