| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:类模块使用中的问题
只看楼主 加入收藏
barbieares
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-11-12
收藏
 问题点数:0 回复次数:2 
类模块使用中的问题

在下初来贵地,有一个问题请教各位大虾。
在类模块中添加两个私有属性strTest,intTest如下:
Option Explicit

'保持属性值的局部变量
Private mvarstrTest As String '局部复制
Private mvarintTest As Integer '局部复制
Public Property Let intTest(ByVal vData As Integer)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.intTest = 5
mvarintTest = vData
End Property


Public Property Get intTest() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.intTest
Set intTest = mvarintTest
End Property

Public Property Let strTest(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.strTest = 5
mvarstrTest = vData
End Property


Public Property Get strTest() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.strTest
Set strTest = mvarstrTest
End Property


为什么可以赋值,在私有成员(mvarstrTest,mvarintTest)中可以看到已经赋值,但对其进行取出访问时(如print objTest.intTest)出现编译错误,要求对象的报错信息。如果将set删掉则没有问题。能正常访问,如print objTest.intTest不出错。这是什么原因?

搜索更多相关主题的帖子: 模块 
2005-11-12 11:09
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
Set是给对象变量赋值用的,你有点画蛇添足了。

Public Property Get intTest() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.intTest
'Set intTest = mvarintTest
intTest = mvarintTest
End Property

Public Property Get strTest() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.strTest
'Set strTest = mvarstrTest
strTest = mvarstrTest
End Property


天津网站建设 http://www./
2005-11-12 15:56
barbieares
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-11-12
收藏
得分:0 
谢谢版主,您的回复给我学好vb很大的信心。
这个代码是由类生成器自动完成的。后来我测试时也发现把set去掉即可。
谢谢。
2005-11-13 13:07
快速回复:类模块使用中的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025440 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved