读书人

这种类属性的声明代表 什么意思?解决

发布时间: 2013-10-21 17:00:48 作者: rapoo

这种类属性的声明代表 什么意思???、
type
MyClass = Class
Private
Field1 : Longint;
Field2 : Longint;
Field3 : Longint;
Procedure Sety(value : Longint);
Function Gety : Longint;
Function Getz : Longint;
Public
Property X : Longint Read Field1 Write Field2;
Property Y : Longint Read GetY Write Sety;
Property Z : Longint Read GetZ;
end;


比如上面的这段程序中的 Property Y : Longint Read GetY Write Sety; 代表什么意思,有人会吗??? property
[解决办法]
首先,你这个例子的属性定义的write有问题

var
mc:MyClass;
begin
mc:=MyClass.Create;
//Wreite, 属性的写操作
mc.Y:= 100; // 给MyClass的Y属性赋值100。
//Read, 属性的读操作
ShowMessage(IntTostr(mc.Y)); // 访问MyClass对象的Y属性的值,用对话框显示出来。
end;

Property Y : Longint Read GetY Write Sety;
Write Sety 的意思就是Y属性的写操作是调用Sety方法
Read GetY 则表示Y属性的读操作调用GetY 方法

另外,你这个例子的对象包装有问题,属性的的read和write对于的字段或方法应该是声明为private或protected的,声明为Public是没有意义的,因为属性访问关联的字段或方法应该是不应该对外公开的,
如果公开了Sety、GetY 这些方法,那么也没必要定义Y属性了,访问和修改Y的值直接用GetY 、SetY就行了,
不知俺这样说能明白么。

读书人网 >.NET

热点推荐