delphi2006语言新特性:Record类型高级用法

时间:2010-02-03 12:46:43  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:ble bordercolor="#00c000" cellspacing="0" bordercolordark="#ffffff" cellpadding="5" width="99%" bgcolor="#e8ffe8" border="1">typeTMyRecord = recordtypeTInnerColorType = Integer;varRed: Integer;class varBlue: Integer;procedure printRed();constructor Create(val: Integer);pro...
  正文:Records新特性

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类型高级用法"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12763.html


关键字:

关于《delphi2006语言新特性:Record类型高级用法》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td