手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

VB.NET中的变化

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!



图: Big Changes11
  下面我们书归正传。名字空间是一种有助于在应用程序中合理安排各种类变量名字的命名方案,我们可以在程序中使用已经被缺省导入的名字空间中的命令,而无需输入其整个前缀。

  好了,我们已经讲述了名字空间。照我的看法,名字空间是VB.NET与以前VB之间的最大的不同之处。名字空间是一个很奇怪的概念,有点不大好理解,我们需要在实践中慢慢领会。   核心的变化

  在编程方面,与以前的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名字空间调用就可以了。但如果能够使用新的方法、更一般的功能,那是最好不过的了。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!