[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 g495326 于 2015-1-1 13:33 编辑

回复 1# yiwuyun

1.函数和过程的调用方式如下:   
━┉┉┉┉┉┉┉∞┉┉┉┉┉┉┉┉∞┉┉┉┉┉┉┉━


2.对象的返回可以用你说的那种方式,但是会产生2次对象复制操作,浪费时间,我认为最好的方式为在以引用的方式在参数中返回。

3.关于上图错误的调用方式,比如fun(argument, argument)的方式调用并不用产生错误,具体的表现如下
━┉┉┉┉┉┉┉∞┉┉┉┉┉┉┉┉∞┉┉┉┉┉┉┉━


4.使用function完全可以在功能上替换sub。这是没错的,开销方面就不是很清楚了。

TOP

回复 3# yiwuyun


    在函数中创建的对象在函数退出后,其对象已经被销毁,如果不发生复制,函数返回的对象将无法调用。

TOP

回复 5# yiwuyun


    关于这一点,我是说明的是错误的调用方法产生的二义性,而不是正确的调用方法。

TOP

回复 6# yiwuyun


这是没错,关键对象创建的位置决定了其生命周期,而不是是否为0,在C++中如果一个对象销毁,指向该对象的指针就变成了垂悬指针,会导致内存泄露。

在返回对象时,假设为返回引用,这在C++中函数内创建的对象会延迟销毁,但这种方法被认为不可取(这句话不是我说的)

函数作为独立代码块应做到与外部无关性。

TOP

回复 9# yiwuyun


关于这种方式返回对象是否会发生对象复制,或者使用了对象延迟销毁对于简短的vbs确实无关紧要。

如果您知道win api函数如何返回,我想您应该懂得我的意思。

虽然我认为这是不好方法,但这种方法确实可以实现对象的返回。

TOP

回复 11# yiwuyun


com是类的封装,以dll形式存在的动态链接库文件,而不是什么对象管理器,对于您的理解不敢苟同。

不知您学习vbs多久了,希望能交个朋友。

TOP

返回列表