And*_*and 26
编译器为已发布成员生成RTTI(运行时类型信息)元数据,但不为公共成员生成(默认情况下).这样做的主要影响是,对象的已发布属性将在设计时出现在对象检查器中.
我不知道你是否正在编写组件,但如果你这样做,你可能知道通常会发布属性和事件,因此可以使用Object Inspector来设置它们.
public
property MyProperty: integer read FMyProperty write FMyProperty
Run Code Online (Sandbox Code Playgroud)
MyProperty会不会是在Object Inspector可见.
published
property MyProperty: integer read FMyProperty write FMyProperty
Run Code Online (Sandbox Code Playgroud)
MyProperty 将在Object Inspector中可见.
R-D*_*R-D 25
如您所述,公共属性和已发布属性具有相同的可见性.已发布的属性包含在RTTI中,而公共属性则不包括在内.
作为旁注,发布了另一件特别的东西:
类成员的默认可见性是published,因此请检查不安全的代码,例如:
TTopSecret = class(TObject)
Name: string;
Password: string;
function DecryptPassword(const AValue): string;
public
constructor Create(const AName, AEncryptedPassword: string);
end;
Run Code Online (Sandbox Code Playgroud)
Name,Password并且DecryptPassword()在世界范围内可见.
| 归档时间: |
|
| 查看次数: |
14036 次 |
| 最近记录: |