我看到一个sample中这样定义一个函数:
class function GetValue(IniName: TComboIniName): Boolean;
该函数是一个Class中的public函数,不知道这样定义是什么意思?
还望给位多多指教,谢谢!

解决方案 »

  1.   

    我的理解:
           類方法(Class Method): 程序代碼中不需要這個類的對象實體來調用,可直接使用. 看看以下代碼:
       var 
          Obj:TObject;
       begin
           
             ListBox1.Items.Add(TObject.ClassName); // 直接調用
     
            Obj := TObject.Create;
            try
               ListBox1.Items.Add(TObject.ClassName); // 通過類的實體來調用
            Finally
               Obj.Free;
            end;
       end;
      

  2.   

    以class开头定义的是一个类的类方法.
    类方法与普通方法表现上最大的不同是:类方法可以直接通过类调用,而普通方法必须有对象实例!

     TA = class
     public
       class procedure Fun1;
       procedure Fun2;
     end;则
      (1) TA.Fun1; 
         正确
      (2) var
           a: TA;
          begin
           a := TA.Create;
           a.Fun1
          end;
         正确
       (3) TA.Fun2
       错误
       (4) var
           a: TA;
          begin
           a := TA.Create;
           a.Fun2;
          end;
       正确