捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >基础知识 > 正文
16 2020.02

理解 Delphi 的类(十二) - 深入属性[1] - 先复习

点击次数:672 更新时间:2020-2-16 11:56:30  【打印此页

关于属性的话题还有很多, 譬如: 数组属性、默认属性、class 属性等等.
先总结一下前面提到过的属性吧.

TMyClass = class(TObject)
  private
    FName: string;
    procedure SetName(const Value: string);
  published
    property Name: string read FName write SetName;
  end;

 

1、属性用 property 定义;

2、read、write 两个关键字至少要存在一个, 如果只有一个就成了只读属性或只写属性;

3、属性名后面也要指定类型(必须是内置类型或定义在前面的类型), 存取的类型必须要和它一致;

4、属性用到的字段与方法一定要声明在属性前面;

5、如果属性读(read)的是方法, 那么这个方法一定是个函数, 且返回值与属性类型一致;
    如果属性是非数组属性, 该函数是无参数的, 譬如: function GetName: string;

6、如果属性写(write)的是方法(一般也不会是字段), 那么这个方法一定是个过程;
    如果属性是非数组属性, 该过程必须只有一个参数, 参数类型必须和属性一致; 并且参数必须是传值的; 
    譬如: procedure SetName(s: string); 或者 procedure SetName(const s: string);

7、属性调用的方法不能是虚方法或动态方法; 不能是重载方法; 

8、如果属性在 published 区, 那它调用的方法只能使用默认的 register 调用约定;

9、属性一般放在 published 区, 如果属性不是公开的也就失去了属性的意义;

10、如果自定义的类不需要 RTTI 或许把属性放到 public 区会更节省(个人认为);

11、属性读写的变量或方法一般放在 private 区, 如果都公开了就用不着属性了;

12、事件属性读写的必须是方法, 不能是变量;

13、属性只是一个桥, 它没有指针(它读写的变量和方法才有指针), 目的是方便存取并提出存取限制;

14、还有 Delphi 的 IDE 为书写属性提供了非常方便的快捷键, 譬如:
      输入: property Name: string; 然后执行 Ctrl+Shift+C ... 哇!

---属性是个奇妙的创意, 读写属性就像读写结构一样方便; 但属性的规矩好多啊, 但这还只是一般属性的法则.

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:672 更新时间:2020-2-16 11:56:30  【打印此页
关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修