read读取此属性的值
write设置此属性的值
delfault默认值
dynamic表明该方法为动态的方法

关于property.
在Delphi当中,往往将一个类的变量定义在private或者protected里面,这样外部是访问不到这些变量的。当有需要将某个或者某些变量暴露出来给外界访问,就在pulic区或者published区定义一个property。property后面跟着的read表示外界引用这个property的时候,从什么地方返回值,write表示外界给这个property赋值的时候,把这个值放到什么地方去,default对于写控件才有用,表示属性栏里面显示的该属性的缺省值。例如:

TMyClass = Class
private
  FField1: integer;
  FField2: string;
  FField3: boolean;

function GetField3: boolean;
  procedure SetField3(AField: boolean);
public
  property Field1: integer read FField1 write FField1;
published
  property Field2: string read FField2;
  property Field3: boolean read GetField3 write SetField3;
end;

implements

function TMyClass.GetField3: boolean;
begin
  //注意这里用FField3而不是Field3.
  result := FField3;
end;

procedure TMyClass.SetField3(AField: boolean);
begin
  //注意这里用FField3而不是用Field3,因为Field3是专门供外部使用的。
  FField3 := AField;
end;

//
//现在你可以这样调用了:
var
  myClass: TMyClass;
  i: integer;
  s: string;
  b: boolean;
begin
  myClass := TMyClass.Create;
  try
    myClass.Field1 := 1;
    i := myClass.Field1;

s := myClass.Field2;
    myClass.Field2 := '这句出错,因为Field2是只读的,没有Write';

myClass.Field3 := true; //自动调用TMyClass.SetField3(True)
    b := myClass.Field3;    //自动调用TMyClass.GetField3返回结果给b
  finally
    myClass.Free;
  end;
end;

转载于:https://www.cnblogs.com/Little-Star/p/7485433.html

property中的read,write是什么意思?相关推荐

  1. property中的关键字

    property中的关键字 示例: 1 @property (nonatomic, strong)NSString *name; 2 @property (nonatomic, assign)NSIn ...

  2. iOS开发—在@interface,@implementation和@property中变量的定义

    一直搞不懂在OC中变量在@interface和@implementation中有什么区别,定义@property又有什么不同,查了很多资料,总结如下: //ViewController.h @inte ...

  3. java从property中取值,JAVA读取PROPERTIES配置文件

    项目经常用到json,xml,Properties,文本文件等,作为配置文件.用来存储连接字符串或其他配置参数等. 本文记录properties. properties文件,存储格式 键=值.例如新建 ...

  4. 通过Spring配置文件中bean中的property赋值

    基本数据类型赋值-通过spring配置文件中bean中的property 扩展-以此方式可以通过配置为连接数据的属性赋值 1.如果是基本数据类型,可以通过setter方法为对象中的属性设置初始值,应用 ...

  5. DOM中Property与Attribute的区别

    property和attribute的汉语翻译几乎相同,都有"属性"的意义(这里姑且称attribute为"特性",以方便区分),而他们的取值也经常相同,但有时 ...

  6. JavaScript 中 Property 和 Attribute 的区别

    转自:http://www.cnblogs.com/elcarim5efil/p/4698980.html property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(pro ...

  7. Springboot项目中的favicon

    当项目还不大的时候,打开浏览器的favicon是自带的小叶子,如下图 此时,我们只需要将我们想要的favicon命令为favicon.ico放置在resource下,重启服务即可改变图标 当项目越来越 ...

  8. python描述符(descriptor)、属性(property)、函数(类)装饰器(decorator )原理实例详解

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 Python的描述符是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过 ...

  9. NDK中C++标准库、STL的配置;Include其他头文件

    原文: Android学习笔记--NDK中C++标准库.STL的配置:Include其他头文件 1.STL的使用,以stlport为例 官方的说法是只需要在Application.mk文件中添加如下一 ...

  10. Python进阶-----property用法(实现了get,set,delete三种方法)

    一.可以利用property对静态属性的进行修改操作,包括设置和删除属性 1.调用静态属性===>在静态属性函数前先用@property: 2.设置静态属性===>在静态属性函数前加上@静 ...

最新文章

  1. 第二届清华大学iCenter量化策略挑战赛开幕!
  2. XenMobile 8.7对iOS7.1 企业级MDM管理功能带来哪些扩展?
  3. pytorch 笔记:torchsummary
  4. 3.1.10 OS之基本分段存储管理(段表、地址变换、信息共享)
  5. VTK:可视化之CurvedReformation
  6. 从零开始搭建vue移动端项目到上线的步骤
  7. 《电子元器件的可靠性》——第1章概述
  8. 微软将于今年秋天停用Azure区块链服务
  9. mysql 存储过程 条件_如何在MySQL存储过程中正确实现条件?
  10. python-numpy.vectorize()
  11. aspf ftp_【解析】文件传输协议:FTP、TFTP、SFTP有什么区别?
  12. ad18/ad19/ad20/ad21/ad22新版ADgaber导出(含官方教程)(含坐标文件)
  13. Android 开源项目分类汇总(转)
  14. 模仿作业帮、猿题库搜题功能(包含图片文字识别)
  15. MySQL/Mariadb基准测试工具-TPC,TPCC,TPMC(计算机性能衡量指标)
  16. boot版本是什么 cent os_确定 BootROM 或固件版本
  17. spass modeler
  18. 苯四乙酸 cas1820793-31-4 齐岳中间体|单体材料
  19. networkx的安装及简单用法
  20. java基础案例教程课后答案,终于有人把Java程序员必学知识点全整理出来了

热门文章

  1. configure: error: readline library not found/libreadline.so: undefined reference to tputs
  2. C++类中在构造器中调用本类的另外构造器
  3. 绝大多数程序员不会测试
  4. 管理感悟:绝不容忍有问题没行动
  5. 公司所有账号和密码,都要记录成文档
  6. WEB前端、后端的说明
  7. day21保护操作系统
  8. vue多个html传递参数,vue 项目@change多个参数传值多个事件的操作
  9. 图形 安装ubuntu_Ubuntu怎么下载应用并安装应用
  10. jqgrid dataevents change 只触发一次_王者荣耀:最难触发的4个被动,张飞上榜,他:我太难了!...