教一下关于Property Let, Property Set, Property Get

tcmuch 2006-06-06 10:06:34
呵呵,CSDN上面有人说
Property Let --属性付值
Property Set --像那些对象要用它
Property Get --取值

还找了一段代码
----------------------------------
<%
Class Class1

Private mrstRecordSet

Public Property Set RecordSet(Value)
If UCase(TypeName(Value)) = "RECORDSET" Then
Set mrstRecordSet = Value
End If
End Property

Public Function IsClose
IsClose = False
If mrstRecordSet.State = 0 Then
IsClose = True
End If
End Function

End Class

'创建对象
Set cls1 = New Class1

'创建RS
Set rs = Server.CreateObject("ADODB.Recordset")

'cls1的RecordSet属性引用创建的RS
Set cls1.RecordSet = rs

'判断RS是否关闭
Response.Write cls1.IsClose
%>
----------------------------------

但是不懂的是这段class不用Property Set也能写
如下:
----------------------------------
Class cls_one
Private mrstRecordSet
Public Sub a(val)
IF UCase(TypeName(Val)) = "RECORDSET" then
set mrstRecordSet = val
End IF
End Sub
Public Function b()
b = typename(mrstRecordSet)
End Function
End Class

set x = new cls_one
set bc = server.CreateObject("adodb.recordset")
x.a(bc)
Response.Write(x.b)
set bc = nothing
set x = nothing
----------------------------------
这样做我好像根本用不到Property Set。
请个位高手赐教,Property Let, Property Set, Property Get这三个东东的优势在哪里?
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmuch 2006-06-06
  • 打赏
  • 举报
回复
Property是不是类内的Private值啊?
tcmuch 2006-06-06
  • 打赏
  • 举报
回复
对不起,束小弟才疏学浅,我想问一下
"从Property取值都是用Get"
中的Property是什么东东?
tcmuch 2006-06-06
  • 打赏
  • 举报
回复
还是因为mrstRecordSet是对象,所以用Get Let 和Set了?-_-#
是是非非 2006-06-06
  • 打赏
  • 举报
回复
这样,你对这个类的Object属性,不管赋值是一个数字,还是字符串,还是RecordSet之类的对象都不会错了
是是非非 2006-06-06
  • 打赏
  • 举报
回复
从Property取值都是用Get

往Property写入值根据变量类型不同,分别使用 Let和 Set

对于对象类型的,必须使用Set

比如,操作一个Varient类型的数据,为了不出错,在类内部最好使用下面这种结构:

Public Property Get Object
if IsObject(m_Object) Then
Set Object=m_Object
Else
Object=m_Object
End Property

Public Property Let Object
Object=m_Object
End Property
Public Property Set Object
Set Object=m_Object
End Property
tcmuch 2006-06-06
  • 打赏
  • 举报
回复
还是因为
Private mrstRecordSet
所以就要用Get Let 和Set了?
各位高手请赐教
tcmuch 2006-06-06
  • 打赏
  • 举报
回复
是不是类里面的Sub、Function 要想变成
a.b = c 这种形式来得到值
就必须要改名换姓变成姓 Property Set 的?

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧