快速学习VB6的最佳方式或资源是什么。我需要尽快加快新职位的速度,而且我来自自学VBA的基础。所以我有两个主要需求。首先,消除坏习惯,其次(更重要的是)理解构建代码和函数等的有效方法。
由于
答案 0 :(得分:2)
如果你还是一个年轻有活力的程序员,那就逃跑吧! VB6是一个死胡同。如果你将自己定位为VB6'er-for-hire(“有笔记本电脑,将会旅行”)类型的话,这个VB6演出才有意义 - 如果你很幸运的话,你可能会像COBOL编码器。所以如果你必须......
查看MarkJ在上述评论中给出的链接。您还可以谷歌“vb6编码标准”或“visual basic 6 books”获取更多创意。 Bruce McKinney撰写的“Hardcore Visual Basic”,http://vb.mvps.org/hardcore/免费在线提供(关于Win32 API和COM的很多好东西),第1章,“语言净化”,值得一读,应该是有助于解决一些不良习惯。
我的建议是学习C#或Java(正如MarkJ推荐的那样),并追踪有关为这些语言编写的编码标准和最佳实践的好书或网站。从那里,采用或适应您的VB6编码风格。
以下是我的VB6特定防坏习惯提示:
(1)始终使用Option Explicit
。小心或以其他方式避免使用其他Option
语句。
(2)避免使用DoEvents
- 而是找到一种方法来使计时器或事件发生。知道主要事件循环是什么。知道消息泵是什么。知道VB6应用程序的核心是一个主事件循环,它为消息泵提供服务(隐藏在VB6程序员之外)。 DoEvents
是一种作弊,经常以泪水结束。
(3)避免Option Base
。在尺寸数组中避免使用To
。数组的第一个元素的索引应为零。
(4)Dim
,If ... EndIf
,Do ... Loop
或任何其他此类块中的For ... Next
变量不会导致VB中的范围混淆.NET土地(或熟悉其他语言的人)。它可能使代码更难阅读或遵循。
(5)始终Dim
与As
- 除非绝对必要,否则请勿使用Variant
或Object
。忘掉变量装饰,例如$(String)或%(Integer) - 换句话说,不要使用它们,使用As
。
(6)在可能和适当的情况下,优先For Each
优先于For
。
(7)首选ByVal
超过ByRef
的数字参数,不会被Sub
或Function
作为副作用更改。
(8)将On Error Resume Next
视为有毒的东西,并尽可能避免。你一定要用吗?评论详细解释为什么需要它,然后尽快关闭它。也许将其封装在自己的Sub或Function中。
(9)了解模型/视图/控制器(MVC)设计模式。避免将任何业务逻辑放入表单中。
(10)首选Boolean
(True
vs False
)优先于Integer
(0
vs 1
或-1
)或(天堂帮助我们!)String
("N"
vs "Y"
)。假设Dim MyFlag As Boolean
,知道If MyFlag = True Then
使我怀疑其他编码器没有得到Boolean
。首选If MyFlag Then
和If Not MyFlag Then
。
(11)ActiveX / COM开发不适用于wimps - 应该在正确理解二进制兼容性和虚拟PC的情况下完成。
答案 1 :(得分:0)
无论您是学习VB6来维护现有的VB6还是将其迁移到.NET或其他更现代的语言,您都应该尝试加快标准的面向对象方法。类,对象,封装,继承(VB6主要使用接口继承,但如果你可以获得一个句柄,那么你就是90%)。此外,VBA没有正确的表单,因此您需要了解VB6 GUI Forms archetecture的工作原理。