读书人

种的只读属性形同虚设

发布时间: 2012-08-08 14:32:45 作者: rapoo

类的只读属性形同虚设?
代码如下,只读属性的值还是被修改了!算是“漏洞”吧?

Delphi(Pascal) code
type  TForm1 = class(TForm)    Button1: TButton;    procedure FormCreate(Sender: TObject);    procedure Button1Click(Sender: TObject);  private    { Private declarations }    Fa: Integer;  public    { Public declarations }    property a: Integer read Fa;  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin  showmessage(IntToStr(a))end;procedure TForm1.FormCreate(Sender: TObject);begin  PInteger(@a)^ := 123;{通过指针方式修改只读属性的值}end;


[解决办法]
修改只读属性的方法就是通过指针
[解决办法]
property a: Integer read Geta; 用函数就是另一回事了

读书人网 >.NET

热点推荐