注册 登录
编程论坛 VB6论坛

属性过程的问题

phimiler 发布于 2016-04-18 22:05, 1973 次点击

教程描述:
[Public | Private | Friend] [Static] Property Set name ([arglist,] reference)
[statements]
[Exit Property]
[statements]
End Property

name必需的。Property Set 过程的名称;遵循标准的变量命名约定,但不能与同一模块中的 Property Get
或 Property Let 过程同名。

范例代码:
Option Explicit

Private i As Integer

Public ii As Integer


Friend Property Get mark() As Variant
mark = i
End Property

Friend Property Let mark(ByVal vNewValue As Variant)
i = vNewValue
End Property

问题:是不是印错了,应该是必须同名。另外set和let用在创建属性过程中有什么区别?
2 回复
#2
风吹过b2016-04-21 23:24
自定义控件和类的属性,分为两类
1,需要响应属性修改
2,不需要响应修改。

先说第二种。只有一个定义,使用 public 定义变量就可以发。不深入说了。

第一种:响应属性的改变,就必须是使用一个函数来响应。函数名,就是属性名。对于一个属性,有二个方向的访问,一是给值,二是读值,所以就会存在二个名字一样的函数。系统如何区分?加前缀动词,get ,let 。明白了这点,就理解了。这是一对的。一出现就必须二个,只能二个。

你说的 set 前缀动词,明天再查下 msdn。现在在手机上。
#3
风吹过b2016-04-22 08:57
声明 Property 过程的名称,参数以及构成其主体的代码,该过程设置一个对象引用。

set 前缀,表示该名字代表的是一个 对象,然后这个定义是 如何生成这个对象的。
--------
Property Set 语句示例
该示例使用 Property Set 语句,定义设置对象引用的属性过程。

'该 Pen 属性可以设置为不同的 Pen 实现。
Property Set Pen(P As Object)
   Set CurrentPen = P   '将 Pen 赋给对象。
End Property

----代码不解释,我仅部分理解------
可以参考:http://blog.

set 与 let 的作用相同,只是应用的对象不同,二者不能共存的,这二个是一定不能同名的。
set 与 get ,还没理解。


1