社区
VB基础类
帖子详情
VB的集合对象(Collection)内的 Item的值为什么不能修改????????
fanziqiang2002
2001-12-16 12:45:27
Public a As New Collection
Public s As Variant
Private Sub Command1_Click()
s = "aaaaaaa"
a.Add s
a.Item(1) = "cccccc" '到了这一步, VB要求对象
End Sub
'VB的集合对象(Collection)内的 Item的值为什么不能修改??????,希望大侠能给于指点
...全文
679
5
打赏
收藏
VB的集合对象(Collection)内的 Item的值为什么不能修改????????
Public a As New Collection Public s As Variant Private Sub Command1_Click() s = "aaaaaaa" a.Add s a.Item(1) = "cccccc" '到了这一步, VB要求对象 End Sub 'VB的集合对象(Collection)内的 Item的值为什么不能修改??????,希望大侠能给于指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fanziqiang2002
2001-12-22
打赏
举报
回复
那么又怎样从该集合获得此对象的引用,有现成的方法吗????
junglerover
2001-12-16
打赏
举报
回复
这里其实有较深层次的原因。涉及到VB中的
赋值语句 X=Y
和引用赋值语句 SET X=Y
的区别问题。
我们知道对简单数据类型变量应当使用赋值语句。其实VB中的一个X=Y隐含了许多操作,
包括先对该变量重新分配地址空间,然后填充值的操作。这也正是为什么你在VB中总
可以用一个简单的等于号就对字符串赋值,而在C里却不能这样做的原因。例如你连续
执行:
a="aaa"
a="bbb"
其实第二句之后的变量a地址跟第一句之后的已经毫无关系了。它并非在第一句时分配的
空间上将"aaa",改成"bbb",而是进行了释放原空间、分配新空间、重新填充的连续操作。
VB的集合添加元素时,并非将该元素复制一份,而是添加一个对它的引用。
你可以将每个集合元素理解为一个地址。而该地址一旦被加入集合,地址本身将不可
更改,但其内容可以更改。
因此,你对集合元素使用赋值语句,就是无法执行的了。
而对于对象变量,只有在每次NEW时才新分配空间,因此你将它添加到集合以后,
只要从该集合获得此对象的引用,就可以改变其值。
sxmzmxh
2001-12-16
打赏
举报
回复
可以先删除再增加
sandder
2001-12-16
打赏
举报
回复
不能就是不能!
就像为什么定义变量要用 Dim 这样
Mittermeyer
2001-12-16
打赏
举报
回复
Item是Collection的只读属性,就这么简单。
如果希望修改Item的值,那么只有先删除,在添加一次。
VB
中
Collection
的使用方法
介绍了
VB
中
集合
,如何去何从建立
集合
对象
的使用方法及实例操作
利用
集合
进行排序,
VB
6.0源代码编写
利用
集合
进行排序,
VB
6.0源代码编写,很实用
VB
自定义升级版
Collection
类
VB
自定义的一个升级版
Collection
类,比
Collection
类优越的一点就是,可以获取Key。
VB
For each循环实例
VB
For each循环实例
VB
For each循环实例
VB
.NET.rar_
vb
.net_
vb
.net信息
基于WMI
VB
.NET 源码 系统信息检测
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章