只读属性或功能?

时间:2013-12-20 07:35:42

标签: delphi delphi-xe2

对于只读属性,使用属性与私有getter和提供公共函数之间是否有任何区别:

function GetCount : Integer;
property Count : Integer read GetCount;

VS

function Count : Integer;

就调用语法而言,这两者似乎完全相同。我经常倾向于使用第二个,因为代码较少,特别是在不支持字段支持的属性的接口中。

有什么不同吗? (当然限于只读属性)

1 个答案:

答案 0 :(得分:2)

  1. “属性用于实现接口”

  2. 看起来像你的简单情况没有区别。

  3. 好的,其他一点:

    Difference between method and property in assembler

    When you using function 使用功能时

    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;
    
      

    有什么不同吗? (仅限于只读的属性   当然)

    如果相信汇编程序 - 这些结构完全相同。

    enter image description here

    enter image description here