| 查看: 202 | 回复: 4 | |||
| 当前主题已经存档。 | |||
liangduoqiang铁虫 (正式写手)
|
[交流]
过程的十五大看法。
|
||
|
1)function和sub过程都能以任意组合嵌套,但不能以任何形式再“定义嵌套”(比如,不能在sub过程中再定义sub和function过程)。 2)对于function和sub过程,它们的形参可以是任意类型(包括对象)。 3)function过程可以定义为字符型数据(固定长度除外),请问“固定长度”如何界定? 4) function过程可以定义为任何类型,除了枚举类型以外。 5) 对于function和sub过程,当用数组作为过程的参数时,进行的不“值”的传递,而是“址”的传递。情况比较特殊,参数必须都是“数组名+空括号”,但并不因为这样就可以认为它们动态数组,它们仍然是静态数组,可以随时进行数组元素的处理。不过要在处理前,先测试上界,才能使用循环语句,否则只能用 for each next语句。 6)vb对象类型中的“Microsoft equation 3.0”和word中的“Microsoft equation 3.0”没有大区别,甚至可以说,它们是一样的,都是微软的核心技术。 7)function过程可以看作是用户自定义一个函数(作为内部函数的一种补充),sub过程可以看作是自定义一个过程(把常用过程单独抽出来,作为简化程序的方法之一)。 8)使用function过程可以实现的功能,也可以用sub过程实现,所以function过程有被淘汰的危险。 9)象sub过程一样,function过程也可以使用call命令。。 10)调用Sub过程有以下两种方法: (1)使用Call语句。格式:Call 过程名([实参表]) (2)直接使用过程名,格式:过程名[实参表]。但是也有例外的情况,如果参数是窗体,那么sub过程相当改变窗体的属性,那么可以直接用sub过程名作为属性,比如form1.formset(form2),此时,用sub过程(也就是formset)定义的属性先用于form1,再用鱼form2。如果参数是控件,那么sub过程相当改变控件的类型,那么可以直接用sub过程名作为对象,比如ctrtest.caption=”kitty”。以上对于参数为对象的sub过程,还可以直接在表达式调用sub过程。 11) 过程递归调用中,最重要的是找出终值计算的条件和依次两次结果之间的关系。 12)“类模块”的内容较难,非计算机专业的本科生免修“类模块”。 13)如果形参表中使用了关键词paramarray,则其他任何类型参数都不再使用关键词optional。这个原因很复杂,至今微软都没做出解释。所以只能死记硬背。 14)全局变量要在窗体模块和标准模(.bas)中的通用声明段用Global或Public语句来声明。而不是仅限于标准模(.bas)中的通用声明段。Global语句和Public语句,作用完全相同。 15)模块级变量用dim和private声明的效果没有什么大区别,但 Private 更好些,因为很容易把它和 Public 区别开来,使代码更容易理解。 上面看法对否,请指正,请补充,谢谢! |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有12人回复
实验室接单子
已经有7人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
对氯苯硼酸纯化
已经有3人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复

小可有礼了
至尊木虫 (著名写手)
- 应助: 4 (幼儿园)
- 金币: 18702.7
- 散金: 101
- 红花: 1
- 帖子: 2545
- 在线: 215.6小时
- 虫号: 751694
- 注册: 2009-04-18
- 性别: GG
- 专业: 计算机科学
★
liangduoqiang(金币+1,VIP+0):3 5-23 17:09
liangduoqiang(金币+1,VIP+0):3 5-23 17:09
|
3)function过程可以定义为字符型数据(固定长度除外),请问“固定长度”如何界定? why固定长度? '// 得到固定长度字符串的函数 Public Function getFixedLenString(dest As String, fixedLen As Integer) If getMixedStringlen(dest) > fixedLen Then getFixedLenString = Left(dest, fixedLen) Else getFixedLenString = dest + String(fixedLen - getMixedStringlen(dest), " " End If End Function '// 得到混合字符串的长度的函数 Public Function getMixedStringlen(strMixed As String) getMixedStringlen = LenB(StrConv(strMixed, vbFromUnicode)) End Function |
2楼2009-05-19 06:33:31
sunhw_hit
木虫 (正式写手)
永不落地的飞鸟
- 应助: 0 (幼儿园)
- 贵宾: 0.645
- 金币: 1225.1
- 散金: 50
- 红花: 2
- 帖子: 607
- 在线: 48.6小时
- 虫号: 435932
- 注册: 2007-08-25
- 专业: 声学

3楼2009-05-19 08:46:23
neobe
铜虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 59.1
- 散金: 100
- 沙发: 1
- 帖子: 2000
- 在线: 21.1小时
- 虫号: 731311
- 注册: 2009-03-25
- 性别: GG
- 专业: 学着懂得
★ ★ ★ ★ ★
liangduoqiang(金币+3,VIP+0):所担负 5-23 17:09
liangduoqiang(金币+2,VIP+0):afs 5-24 16:14
liangduoqiang(金币+3,VIP+0):所担负 5-23 17:09
liangduoqiang(金币+2,VIP+0):afs 5-24 16:14
|
我已经不学VB好多年,当初的梦想还没实现。 关于固定长度,好像只要定义的时候as string就行了,后面不要加一个固定的字符数限制,哪怕实际上就是固定长度。 function所实现的功能确实能以sub来实现,但是function的存在更有利于功能模块的移植,它是一个框架。淘汰与否,不敢评论。 过程递归调用中,最重要的是找出终值计算的条件和依次两次结果之间的关系。 这个很同意,这个“找出”的过程,其实是一次一次判断选择,直至最终碰到可以直接计算出来具体值的条件,然后依次有序的返回。 |

4楼2009-05-19 09:21:40
neobe
铜虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 59.1
- 散金: 100
- 沙发: 1
- 帖子: 2000
- 在线: 21.1小时
- 虫号: 731311
- 注册: 2009-03-25
- 性别: GG
- 专业: 学着懂得

5楼2009-05-19 09:25:14












回复此楼