对于只读属性,使用属性与私有getter和提供公共函数之间是否有任何区别:
function GetCount : Integer;
property Count : Integer read GetCount;
VS
function Count : Integer;
就调用语法而言,这两者似乎完全相同。我经常倾向于使用第二个,因为代码较少,特别是在不支持字段支持的属性的接口中。
有什么不同吗? (当然限于只读属性)
答案 0 :(得分:2)
“属性用于实现接口”
看起来像你的简单情况没有区别。
好的,其他一点:
使用功能时
P.S。接口==对象 - 实现
原始代码:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
var
x : integer;
public
{ Public declarations }
function GetX : integer;
property MyX : integer read x;
end;
......
procedure TForm1.Button1Click(Sender: TObject);
var
s : integer;
begin
s := GetX;
s := MyX;
end;
有什么不同吗? (仅限于只读的属性 当然)
如果相信汇编程序 - 这些结构完全相同。