您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > VB开发 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

VB.NET中的变化
2001-11-03· ·刘彦青··yesky

上一页  1 2 3 4 5 6 7 8  


  核心的变化

  在编程方面,与以前的VB6相比,VB.NET有哪些变化我们需要掌握呢?

  除了名字空间外,下面的变化也会对你的编程产生影响:

  Long,Integer━━以前的Long型变量成了VB.NET中的Integer,而Integer则成了VB.NET中的Short,新的Long型变量的长度成了64位。

  Byte,Char━━新的Byte型数据的值可以是0-255之间的一个数,新的Char类型数据占用2个字节的空间,可以是一个Unicode编码的字符。

  不再有数组━━在VB.NET中已经不再有数组了,而代之以Object数据类型,可以包含任何内容。

  Currency数据类型被取代━━VB.NET中没有了Currency数据类型,取而代之的是128位的Decimal数据类型。

  变量定义━━在VB6中,Dim X, Y, Z As Integer这个语句将生成2个数组和1个整型数;而在VB.NET中,将生成三个Integer类型的数组。

  0基数组━━VB.NET中的数组是从0开始的,意味着其下标将从0开始。因此,Dim MyArray(10) As Integer语句将会生成11个Integer类型的数组变量━━从0到10。

  UDT的变化━━用户自定义数据类型非常有用,在VB.NET中定义这种类型的变量时,需要使用象API那样的关健词结构,而不能再使用Type。下面是一个如何定义UDT类型变量的例子:

Structure MyStructure

 Public Name As String
 Public Age As Byte
End Structure

  不再支持Collection对象━━VB.NET不再支持Collection对象,它在System.Collections名字空间中提供了几种新的集合类型━━最相近的是HashTable和ObjectList,当然了,你也可以象在下面那样通过Compatibility名字空间使用原来的Collection对象。

Dim MyCol As Microsoft.VisualBasic.Compatibility.VB6.Collection
MyCol.Add("My Information")

  新的运算符━━VB.NET新增加了一些新的有助于减少代码长度的算术运算符。例如,X += 4与X = X + 4是等效的。

  简化流程━━VB.NET简化了If...Then语句中的流程。因此,如果If...Then语句有二部分,第一部分返回了“假”值,VB.NET就不会再去检查第二部分的值了。

  不再使用Set语句━━在VB6中,我们经常使用Set语句,它可以用来建立除一般的数据类型之外的对象。由于在VB.NET中,所有的数据都是对象,因此已经不再需求它了,如果你输入了它,VB.NET会自动地把它删除掉。

  属性定义━━VB.NET中的属性定义已经不再需要Set和Get语句了。下面是一个新的Property过程的例子,需要注意的是Value是一个关健字,它的值就是传递给这一属性的值。

Public Property MachinePart() As String
Set
mstrName = Value
End Set

Get
MachinePart = mstrName
End Get
End Property

  错误处理━━ VB.NET中,我们使用Try,Catch和Finally结构进行错误处理。Try模块中的代码是正在运行的代码,如果有错误发生,Catch模块中的代码就会执行,Finally模块中的代码则一直在运行。VB编程人员会感到有点不适应,熟悉C或Java的编程人员也是如此。我建议你使用VB.NET帮助中的索引找到Error Handling(错误处理)部分中的Introduction to Exception Handling(意外处理介绍),找到其中的Try...Catch...Finally statement小节,测试一下其中的例子。

  采用传值方式传递参数━━ 缺省情况下,所有的参数的传递都是按值进行的。

  不再支持.Show方法━━VB.NET已经不再支持简单的Form.Show方法。由于VB.NET中的所有数据都是对象,因此,需要在首先执行Dim FormName As New Form1语句后,再执行FormName.Show。

  碎片收集━━尽管碎片收集并不是编程方面的变化,但如果操作系统认为认为需要清理对象地址等时,碎片收集过程就会开始运行。因此在VB6中,如果把一个对象的值设置为Nothing,它就会立即在内存中消失。在VB.NET中就不是这样了,在你的对象被碎片收集程序清除前,它仍然会在内存中保留一段时间。因此在类终止代码运行后,不能认为对象已经从内存中消失了。这样有个好处,能够自动纠正循环调用问题。

  Return关健字━━在一个函数内部,无须再把函数名设置为返回值或一个对象,可以简单地通过Return MyData在不改变实际代码的情况下改变函数的名字。

  提示:在这里我不能一一写出所有语法的变化,只能拣最重要的写出来,希望能起到抛砖引玉的作用。

  提示之二:值得一提的是,VB6中的许多功能在VB.NET中仍然有效,只要通过Microsoft.VisualBasic.Compatibility.VB6名字空间调用就可以了。但如果能够使用新的方法、更一般的功能,那是最好不过的了。


上一页  1 2 3 4 5 6 7 8  

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 用Visual Basic .Net发送电子邮件
 VB.NET开发互联网应用
 实现Web Service
 VB.NET面向对象的程序设计语言
 VB.NET中的多线程开发
 深入浅出VB.Net Windows Form
 深入研究VB.Net远程调用对象的机制
 概述从VB6到 VB.NET 的 变化
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!