【发布时间】:2011-04-01 15:27:16
【问题描述】:
正如问题所说...是否可以在不同的可见性级别声明属性的读/写。如果是这样,语法是什么?
类似的东西:
protected
property MyProp : Integer write FMyProp;
public
property MyProp : Integer read FMyProp;
end;
并不是说它会是一个主要的语言特性,它很容易被替换为
protected
procedure SetMyProp(Value : Integer);
public
property MyProp : Integer read FMyProp;
end;
我只是好奇这种可能性是否存在。
【问题讨论】:
-
如果你想要这样,那么只需使用私有或受保护的 Set 方法 (SetPropName),而不是将其放在公共或发布的属性中。您必须使用 object.SetPropName(x) 而不是 object.PropName := x,这很好。
-
作为旁注,如果你使用 interfaces 这样的结构自然而然。在界面中,该属性将是只读的。在课堂上,它将被读/写和保护。