使用getter函数定义readonly属性的优先方法

时间:2015-08-19 13:37:08

标签: delphi

使用Getter函数定义只读属性的首选方法是什么:

TMyClass = class(TObject) 
private
 function GetValue: integer
public
 property Value: integer read GetValue;
end;

TMyClass = class(TObject) 
public
 function Value: integer;
end;

[编辑]我知道这也是一个品味问题,所以我将这个问题改为: 这两种方法的专业人士和对手是什么?

3 个答案:

答案 0 :(得分:1)

第一个是首选方法。 由于您希望通过名称读取值,因此通过属性执行此操作是常见的方法。 function通常由GetValueExtractFilePath等指令命名。变量和属性由它们存储的值命名。

答案 1 :(得分:1)

我建议最大的实际区别是,如果你有任何使用RTTI来检查属性的代码(例如使用流媒体的任何东西),那么选项1将适用于此,选项2赢得了#t。此外,如果这是一个具有继承结构的类,您将无法使用选项2轻松更改可见性。

另一方面,选项2更简洁,如果它是一个简单的程序,可能就是你所需要的。

答案 2 :(得分:0)

这实际上取决于你实际上要用这个功能做什么;例如,如果您希望它挂钩到实时绑定(例如Prototype Bind Source),您将需要声明属性