VB里两个集合能否直接进行比较,我试过IS运算符,那个没毛用!!!!!
发布网友
发布时间:2022-04-27 01:43
我来回答
共3个回答
热心网友
时间:2023-11-16 05:42
Collection不能直接比较,因为Collection是对象,而不是变量,就像form1能和form2比较吗?意思一样。必须用循环逐个元素比较。
如果 X 和 Y 引用相同的对象,则 X Is Y 为 True,否则为false。你可理解为X和Y是否指向同一块内存。
你的程序中X和Y是两个对象,是两块分别的内存,当然 X Is Y 为 false
set x=y 的意思是“X指向Y”,而不是把Y的内容原封不动地复制到X里,就是一块内存X也引用它Y也引用它,所以X Is Y为True了。
set x=y不是“把X和Y都设到相等了”的意思,在VB里这种对象的赋值语句是“引用”,而不是把Y的内容复制一份存到X(类似于C语言中的指针操作:int *p=a;并不开辟新的内存空间),也就是说,如果set x=y,则可以Dim X As Collection而不用New,即时New了,set x=y时也会自动消掉X的内存空间,而把X当做一个指针直接指向Y)
热心网友
时间:2023-11-16 05:42
二楼正解!第一次遇这样的问题啊,努力学习中…
热心网友
时间:2023-11-16 05:43
IS?