1 - 如果您不打算创建对象实例,TStaticDynSettings
您可以使用 3 种形式中的任何一种:
type
TStaticDynSettings = class
public
procedure Reload1;
class procedure Reload2;
class procedure Reload3; static;
end;
调用示例:
procedure Call1;
var Instance: TStaticDynSettings;
begin
Instance.Reload1;
end;
procedure Call2;
begin
TStaticDynSettings.Reload2;
end;
procedure Call3;
begin
TStaticDynSettings.Reload3;
end;
区别在于传入的隐藏参数Reload1
和Reload2
方法,而不是传入Reload3
。
hidden 参数是对对象实例的引用Reload1
(并且没有使用,因为您没有创建对象实例)和类引用Reload2
(在您的情况下这可能也是不必要的,假设在编译时已知类引用)。
第一种形式 ( Reload1
) 具有误导性,因为它假定使用对象引用,因此应避免使用(尽管它有效)。
Reload3
如果您不使用在编译时未知的类引用,则最好使用第三种形式 ( )。
2 - 没有区别(不计算在第一种情况下使用不必要的对象变量的开销)。