什么时候应该在Delphi中使用增强型记录类型而不是类?
发布时间:2020-12-15 10:09:21 所属栏目:大数据 来源:网络整理
导读:Delphi 2006引入了新的记录功能,使其更加“面向对象”. 在哪种情况下,比类型更适合于设计的记录类型? 使用这些记录类型有哪些优势? 解决方法 你有记录,对象和类. 自从turbo pascal 1以来,它们是可用的.它们是轻量级的,具有属性和方法,但不支持继承.返回记
Delphi 2006引入了新的记录功能,使其更加“面向对象”.
在哪种情况下,比类型更适合于设计的记录类型? 解决方法
你有记录,对象和类.
自从turbo pascal 1以来,它们是可用的.它们是轻量级的,具有属性和方法,但不支持继承.返回记录的函数有一些问题.如果这些记录有方法有时会产生内部错误: type TRec = record function Method1: Integer; end; function Func: TRec; procedure Test; var x : TRec; begin Func.Method1; // Sometimes crashes the compiler // Circumvention: x := Func; x.Method1; // Works end; 如果我是正确的话,对象将被引入涡轮帕斯卡5.然后他们为帕斯卡的OO提供了一种方式.他们或多或少被推荐使用Delphi,但您仍然可以使用它们.对象可以实现接口. Delphi 1引入了类和最通用的类??.它们实现接口并支持继承.但每个类变量都是一个隐藏的指针.这意味着需要在堆上创建类.幸运的是,这个过程大都是隐藏的. 下面是三者之间的差异表.我添加了接口完成. |Class|Object|Record|Interface| ------------------|-----------------------------| Are pointers? | y | n | n | y | Inheritance | y | y | n | y | Helpers | y | n | y | n | Impl. Interface | y | y | n | - | Visibility | y | y | n | n | Method | y | y | y | y | Fields | y | y | y | n | Properties | y | y | y | y | Consts | y | y | y | n | Types | y | y | y | n | Variants | n | n | y | n | Virtual | y | n | y | - | ------------------|-----------------------------| (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |