创建属性property时,不用官方的 default 说明符;
首先看个案例
TPerson = class
published
property Age: Integer read FAge write SetAge default 20;
end;
我们创建一个TPerson类 给其一个属性,然后使用了 default 20 关键字,按照我们的理解 应该是 这个age属性的默认值 就是20;
其实这个default 说明符不是 默认值的意思;官方也特别提示了:
https://docwiki.embarcadero.com/RADStudio/Athens/en/Properties_(Delphi)
可见 这个 default 与 我们理解的不一样,为了 降低 熵值,降低复杂度,还是不要使用 这些属性说明符了,就让其默认就可;
若要创建实例时,给其默认值,就在构造函数里 指定;
后来我开发一个按钮组件,给一个按钮默认 一个颜色,发现真的不生效:
//定义属性时,给其指定一个默认值,鼠标悬浮颜色
property ColorHot: TColor read FColorHot write SetColorHot default clWhite;
//在构造函数里指定初始化值,鼠标按下颜色
constructor TColorButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FColorPressed := clRed;
end;
所以 还是不要使用 default了,避免 程序难以理解;
标签:默认值,20,default,说明符,property,属性 From: https://www.cnblogs.com/del88/p/18234915