日期:2009-08-03  浏览次数:20564 次



            深入了解 ASP.NET...

  这篇文章论述了从VB6/VBScript 到VB.NET的重要的语言变化。当创建ASP.NET页时, 你必须使用一种与.NET兼容的编程语言,正如 C#, VB.NET, 或者 JScript.NET. 然而,从VB6/VBScript 到VB.NET 有一些重要的变化,这也是我们这篇文章要谈论的问题。要从整体上更深入的了解 ASP.NET , 请查阅 ASP.NET Article Index!

  同样,要获得更多的资料请查阅微软的文章:
  Preparing Your Visual Basic 6.0 Applications for the Upgrade to Visual Basic.NET.


  绪论

  随着微软.NET开发平台的发布,Visual Basic 已经融入了一个完全的面向对象语言 (命名为VB.NET). 然而由于这些跟本的变化,从VB6到VB.NET的进阶,即使是经验丰富的程序员,也要花相当多的时间。我将试图在下面列出VB.NET对于Visual Basic的语言变化,并尽可能在恰当的地方给出范例. 这个列表不一定完整,但它的确覆盖了主要的特征。如果你是一个想升级到VB.NET 的VB程序员,那这篇就是你的必读文章.

  注意到当前的(到2001年5月30),ASP.NET 还是Beta 1版本,它可以从www.ASP.NET免费的下载.然而,这篇文章所谈到的一些变化是对于Beta 2版本(将计划于6月17发布)来说的,因此对于Beta 1 版本它们是不会起作用的。这部分变化将会在下边的文章里特别说明.

  数据类型的变化

  .NET 平台给所有它支持的语言提供了一个公共数据类型系统(Common Type System)。作为通用语言运行环境的强制标准,所有的语言必须支持相同的数据类型。这结束了众多语言数据类型不兼容的状况。例如,在32位的 Windows平台, C++中的整型数据占用了4个字节,然而在VB中,它只占用了2个字节。下面是在VB.NET中关于数据类型的主要变化:

  在 .NET下VB.NET中的整型数据也是4个字节。

  VB.NET 没有现金(currency)数据类型.以十进制小数给于替换.

  VB.NET 引入了一个名为 Char的新的数据类型。它占用2个字节,并可以存放Unicode字符。

  VB.NET 没有 Variant 数据类型. 为了获得与variant 数据类型相似的效果,可以用Object 数据类型。 (由于任何事物在.NET中—— 包括基本的数据类型——都是对象,一个object类型的变量可以指向任何数据类型。)

  在 VB.NET 中没有定长字符串的概念。

  在 VB6 中用 Type 关键字来声明用户定义的结构。在VB.NET中用Structure 关键字来到相同的目的. 其余部分的语法是不变的. 例如:

Structure MyStruct1
  ...
End Structure

  声明变量

  让我们看一个在VB6中的简单例子:

  
Dim x,y as integer
 
  在这个例子中 VB6 会认为 x是一个variant 变量 ,而y是一个integer变量, 这是个有点古怪的语法现象。VB.NET 纠正了这个问题,将 x 和 y 都创建为 integer 变量。此外, VB.NET 允许你在声明一个变量的同时赋予它初始值,如:

  
Dim str1 as string="hello"
 
  VB.NET 还引入了只读 (Read-Only) 变量. 与常数变量不同的是只读变量可以在声明的时候不赋予它初始值,但是一旦你给它赋了值,它就不能再改变了,例如:

'no initialization here

Dim readonly x as integer

'in later code

x=100

'now x can't be changed

x=200 '***** error *********

  数组

  在 VB6中, 你可以定义数组的下界和上界。但是,在VB.NET中,数组的下界总是零。同样,当你对一个数组进行如下定义时:

  
Dim aStates(50) as String

  实际上, 生成了51 个数据元素,0是这个数组的下界,50是上界!(注意:在 Beta 1 版本的 VB.NET 编译器中, 上面的声明将生成50个数据元素,边界从0到49。)

  在 Part 2 我们将继续探索VB.NET前所未有的新特性!