VB.NET有很多值得学习的地方,这里我们主要介绍VB.NET语法,包括介绍数据类型等方面。很久以来,VB因为缺乏完善的面向对象支持、缺乏高效的错误处理机制和性能表现不佳,因而一直受到某些人的嘲笑。VB.NET将彻底改变这种情况。然而,VB.NET在这些方面的改进也要付出代价,许多旧的代码需要手工进行转换才能在VB.NET下运行。
下面总结了VB.NET语言在语法上的改动之处。并没有完全列出所有改动之处,但列出了最重要的一些改动。对比了VB6中一些熟悉的语法形式及其在VB.NET语法中类似功能最接近的语法形式。
VB.NET语法对比
旧语法 新语法 说明窗体装载事件,类初始化事件 Sub New procedure Sub New称为构造方法(Constructor),它可以有参数。
Property Let Property Set Let关键词不再有效。
Currency Decimal 在VB6中,Decimal是Variant的一种子类型,但在.NET中它是一种固有的数据类型。.NET不再支持Currency数据类型。
Variant Object VB.NET的Object数据类型兼有VB6 Object类型和Variant类型的能力。
Debug.Print Debug.Write Debug.WriteLine 这个变化只是名称上的简单变化:从Print变为Write和WriteLine。
Wend End While VB.NET推荐使用While循环而不是Do循环。
为了让VB的数据类型和其他.NET语言的数据类型相匹配,Microsoft修改了整数类数据类型的表示方法,并加入了一个新的数据类型。这些改动对于进行外部调用的方法尤其重要(比如API调用)。例如,如果被调用函数需要一个32位的整数参数,则在VB6中它应该声明为Long,在VB.NET中应该声明为Integer。
和整数有关的数据类型
长度 VB6以及更早版本中的名称 VB.NET中的名称
- 16 bit Integer Short
- 32 bit Long Integer
- 64 bit (无) Long
在VB.NET语法中,Microsoft减少了许多原先用于VB6的关键词,代之以“框架类”。之所以要进行这种替换,是因为框架类中的功能对所有的.NET语言都有效。下表列出了部分受影响的关键词。被替换的关键词
VB关键词 VB.NET名称空间中的位置 方法/属性
- Circle System.Drawing.Graphics DrawEllipse
- Line System.Drawing.Graphics DrawLine
- Atn System.Math Atan
- Sgn System.Math Sign
- Sqr System.Math Sqrt
- Rnd Microsoft.VisualBasic.Compatibility.VB6 Rnd
- Round Microsoft.VisualBasic.Compatibility.VB6 Round
- Lset System.String PadRight
- Rset System.String PadLeft
- DoEvents System.Winforms.Application DoEvents
- VarType System.Object GetType
(返回类Type的对象,其中包含了可提取出信息的属性)
【编辑推荐】