|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
| |
| delphi2006语言新特性:Record类型高级用法 |
|
Records新特性4S4Linux联盟 4S4Linux联盟 delphi语言在传统的Records类型的基础上增加了许多像类一样的高级功能,如:Records可以有属性和方法(包括构造constructors),类属性,类方法,类静态字段和内嵌类型。下面这个示例演示定义一个功能像类一样的Records: 4S4Linux联盟
4S4Linux联盟 type4S4Linux联盟 TMyRecord = record4S4Linux联盟 type4S4Linux联盟 TInnerColorType = Integer;4S4Linux联盟 var4S4Linux联盟 Red: Integer;4S4Linux联盟 class var4S4Linux联盟 Blue: Integer;4S4Linux联盟 procedure printRed();4S4Linux联盟 constructor Create(val: Integer);4S4Linux联盟 property RedProperty: TInnerColorType read Red write Red;4S4Linux联盟 class property BlueProp: TInnerColorType read Blue write Blue;4S4Linux联盟 end;4S4Linux联盟 4S4Linux联盟 constructor TMyRecord.Create(val: Integer);4S4Linux联盟 begin4S4Linux联盟 Red := val;4S4Linux联盟 end;4S4Linux联盟 4S4Linux联盟 procedure TMyRecord.printRed;4S4Linux联盟 begin4S4Linux联盟 writeln('Red: ', Red);4S4Linux联盟 end; |
4S4Linux联盟 虽然现在records能实现许多类的特性,但它与类之间还是有一些不同:4S4Linux联盟 1 records不支持继承4S4Linux联盟 2 records能含有variant parts(呵呵,不知翻译成什么能说明白,就是case部分),类不可以4S4Linux联盟 3 records是值类型,可以通过赋值拷贝,类是参考类型,因此不能通过赋值来拷贝。4S4Linux联盟 4 records在win32和.net上允许操作符重载,类仅在.net上支持操作符重载4S4Linux联盟 5 records使用一个缺省的没有参数的构造函数(constructor)自动创建,而类必须明确的创建。在record中用户定义的构造函数必须有一个或多个参数。4S4Linux联盟 6 record类型不能有析构函数(destructors)4S4Linux联盟 7 虚方法(那些指定了virtual、dynamic和message关键字的)不能使用在record类型中4S4Linux联盟 8 record类型在win32开台上不能实现接口,在.net平台上能实现接口4S4Linux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|