subroutine
dimensionsubroutine    [网络] 子程序;子例程;副程式dimension     维度Dim关键词表明了变量的声明.Dim是Dimension(维度)简称,历史要追溯到BASIC语言起源的20世纪60年代末.在当时的语言中,变量只是在需要的地方被用到,不需声明(数组除外)。数组在内存中的排布方式决定,在数组被使用前,BASIC语言编译器必须被告知数组的维度.这就是Dim声明的目的.现在,由于对所有变量都进行声明被认为是一个好习惯,Dim声明就被扩展到所有的变量声明了。

解决方案 »

  1.   

    早期只有行号的时候,不是用sub定义函数,而是用gosub 行号 进行跳转。go sub 和 go to的区别在于前者是双程票,可以return到go sub下一行,后者是单程票,除非你再go to 回来。
    VB6里面还是支持这个的,甚至还支持每句前面加行号。
    看上去很垃圾的写法,但是我还真特么在14年见过大学博士课题里面使用94年的GW basic写的程序粘贴到VB6里面跑起来的事情。
      

  2.   


    初学者研究这种奇闻异事没有意义,属于浪费时间,任何语言关键字都没几个,记住就行了,没必要了解其出处。
    研究数据结构、算法、啥的来的实在,换个语言也能搞定。的确,研究这些问题没有一点点实际意义,VB中的关键字不仅仅是 Dim 、Sub,如果一个一个研究它,要花费多少精力与时间,与其这样不如好好学习一下基本语句、函数、对象、事件、方法等等比较实用。
      

  3.   

    我当时和楼主一样,确实去查来源了,这样更加有助于理解记忆,比如有些api函数声明为什么后面有个ex,通过研究知道了是extend是缩写,表示扩展延伸的意思,后来我自己写函数如果功能更强点的而旧函数不想删除的就在函数名后面加个Ex以示区分,死记未尝不可,楼上这些老鸟代码写多了自然觉得完全没必要,脑海中两者直接关联。初学者可以适当这样,但是不要过度,楼主这不是一个坏习惯可以保持。
      

  4.   

    出现EX是因为相对于旧的API函数,输入或者输出发生了变化,保留原来的API是为了让系统兼容旧的应用程序,而不是懒得删除。
    在看MSDN的时候,文档会给出相应的旧函数链接,每个API会给出开始支持的系统版本。即使不知道EX是extend的意思,如果在看文档的时候稍微注意一下新旧函数的差异,也就会心一笑明白了。即使是从来没有见到过旧的函数,也不查阅MSDN,上百度一搜就把代码拷贝下来,EX作为函数名的一部分理解下来也并没有任何影响。
    要理解的其实是这种命名方式的原因,而不是命名上具体后缀是啥意思。
    还有,用不用EX其实很大程度上看项目组或者程序员自己的规范,比如,同样是微软家的东西,webbrowser就有 Navigate 和 Navigate2两个方法。到哪里说理去?大脑里面要再腾空间出来记住2=EX=extend么?完全不需要,好奇宝宝去查查文档理解差异,然后哦一下,知道咋用以后固定用一个就是了。聪明宝宝查都不查,知道这种东西就是为了兼容老程序,新程序新系统挑名字长的用,没问题就不再去纠结名字短的是干啥的了。