各位大虾,小弟初学delphi。
delphi在类中引入了属性的概念,VC中好象没有,但归根结底都是对域值的操作。
那么引入属性究竟有什么意义呢?难道用PUBLIC成员函数不能取代属性的作用??
(补充一点:属性的基本用法小弟已经知道)
delphi在类中引入了属性的概念,VC中好象没有,但归根结底都是对域值的操作。
那么引入属性究竟有什么意义呢?难道用PUBLIC成员函数不能取代属性的作用??
(补充一点:属性的基本用法小弟已经知道)
解决方案 »
- Indy IdFTP组件的ChangeDir方法不起作用,我哪里弄错了?请高手指教。
- 问题来了,数据库的操作问题。关于删除的
- 谁有截获网络数据的程序源码,共享一下
- (来者有分)头儿分配的项目,目前一点头绪都没有,请各位DX指个方向
- 如何让ADOConnection彻底与服务器断开?
- 这个小程序段何处出错?
- 在一个FORM中有二个DBGRID一个是显示的是表中工作单位dbgrid1一个是显示人员信息dbgrid2(同一个表)怎么样才可以使点dbgrid中的一个工作单
- 百思不得其解没办法只好问一下了很菜的问题关于字符串的
- 利用NMSMTP1编写邮件发送,结果出错,请高手帮帮忙。
- 学习轨迹,delphi
- 关于窗体继承的问题.
- 小问题
对属性的操作不仅仅是对域值的操作,而是封装了一系列的动作,这些动作可能会改变域值,可能不会改变,还可能除了改变域值以外多做了很多事情。
至于说到成员函数取代属性的问题,当然你可以直接在接口处声明函数而不是属性,但是这样会带来交流成本的增加,你想想看,对于一个类的使用者而言,什么样的语句更易读,易用。
使用属性
ObjectA.Text := '你好';
Str := ObjectA.Text;
使用成员函数
ObjectA.SetText('你好');
Str := ObjectA.GetText;
其实也是SET,GET啊;看看PUBLISH里东西你就明白了;
有问题请发信息到我的E-mail:[email protected]
在delphi中属性基本是指published的;
private一般成为域(Field);
使用published的属性可以生成相应的RTTI,与IDE结合在一起。
而光使用public的Get/Set不能实现此功能。
hehe....