vb和vb.net的比较

来源:互联网 发布:淘宝古着能买吗 编辑:程序博客网 时间:2024/05/18 20:09

    Vb.net是Microsoft visual studio.net套件中主要组成部分之一,是vb6.0的后续版本,两者几乎在90%以上保持相似或者相同。但是,.net版本的visual basic增加了更多的特性,同时也是原来的vb6.0做了很多修改,演化为完全面向对象的编程语言。

    

Vb和vb.net的比较


1、 输入和输出

 


2、 基本语言元素

   

   2、1命名空间

    命名空间是类和组件的逻辑组合,其目的在于将.net class按类别定义。大部分的.net类型都在命名空间中定义。如果想使用console类,需要用Imports指令导入System Namespace如:Imports System.用户也可以明确指定调用namespace而无需用Import导入。

    但是在vb6.0中用户可以直接使用内置函数。在vb.net中必须导入或直接指定命名空间。

 

   2、2语法

   ·数据类型的改变

    

    

    ·变量声明的变化

    在vb6.0中,变量声明有许多限制。其中之一就是不能同时声明多个变量。如果一定要在一行中声明多个变量,就一定要指明每个变量的类型。否则将被默认为Variant类型。

     

Dim a1,a2 As Integer

     其中a1是Variant类型,a2是Integer类型。

     

     Vb.net支持同行声明多个变量,例如。

     

Dim a1,a2,a3 as Integer


     变量初始化,在vb6.0中不能同时声明和初始化变量,而vb.net则支持这个特性。

 

   ·数组

    在vb.net中,你需要格外留意数组范围问题。Vb6.0默认数组下界为0,故数组中的元素数量与数组上界值加一。下面的数组界限从A(0)到A(10),共有11个元素:

    

Dim A(10)AS Single

    可以使用option base改变下界值为1.在vb.net中,数组和c++一样,下界值为0,不支持option base.

    你可以在vb6.0中指定固定长度的数据

    

Dim arrweekdays(0 to 6)as integer

    这里的arrweekdays数组是固定长度的,不能用ReDim改变长度。Vb.net不支持固定长度的数组,所以ReDim总是有效的。

    可以用下面两种方式声明数组:   

Dim arrweekdays(6) as integerDim arrweekDays() as integer={1,2,3,4,5,6}

    在vb6.0中,redim用于初始化动态数组,在vb.net中你不能把它当做声明用,redim只能用于改变数组长度,不过不能改变数组维数。


   ·固定长度字符串

    在vb6.0中,可以声明字符串时指定其长度,vb.net不支持固定长度字符串。

   

   ·布尔操作符

    Vb6.0中的and、or或是xor语句是按位操作符,而在vb.net中,他们是布尔操作符,执行这些操作将返回true或false。Vb.net引入新操作符来完成按位操作。

 


   ·结构与自定义类型

    在vb6.0中,你使用type…end type 语句块创建结构或者自定义类型。

    Vb.net引入新的语法:structure。type…end type不在被支持。Structure…end sturcture可以指定结构中每一个元素的可访问域。

   

    ·new和nothing关键字

    Vb6.0中,as new 和nothing关键字用于一个对象并初始化它。Vb.net不支持隐式创建对象。甚至连数据类型都是对象,两种创建数据类型或对象。

Dim I as integerDim I as integer= new integer()

 

   2、3语句

   Vb.netvb6.0的流程控制语句做了大的修改,下面是控制语句的修改情况。

 


   2、4类

   Vb.net引入了几个新关键字。全部访问域关键字及其作用域列表如下:

 

   继承是面向对象编程语言中常用的技术,继承让你能够重用类代码和功能。Vb.net支持继承,而vb6.0不支持。


    2、5结构化异常处理

    异常处理也被称为错误处理。


    在vb6.0中,一般使用On Error Goto和On Error Resume Next来进行错误处理。这种类型的错误处理被称为非结构化异常处理。

    而在vb.net中,Microsoft推出了结构化异常处理机制。Vb.net支持类似C++的TryCatch.Finally控制。Try语句块用以抛出异常。如果异常发生,在Catch语块中处理。Finally语句块是可选的,在需要释放资源时特别有用。

 

3、 函数、过程

    Vb6.0允许不用加括号调用过程(sub),不过,用call语句调用函数或sub时,一定要使用圆括号。

    在vb.net中,所有的方法调用都需要圆括号,而call语句则是可选的。

 

4、 数据库

     Vb.netvb6.0在数据库访问方面的差别主要表现在数据访问技术、数据访问具体实现方法和数据绑定问题。

     

    4、1数据访问技术

    vb6.0是通过ADO(Active X数据对象)来实现对数据库的访问的。同时为了保证对早期版本的兼容,也提供RDO(远程数据对象)和DAO(数据访问对象)两种数据访问技术。

    Vb.net中则使用ADO.NET来访问数据库。其实在VB.NET中也可以使用ADO来访问数据库,但ADO在VB.NET中是以COM组件的形式出现的,通过添加引用才可以使用。

    ADO.NET是.NET框架中的一部分。ADO和ADO.NET这两种技术在概念、功能和实现上都有许多差异。


    4.2数据访问的具体实现方法

    vb6.0实现数据访问主要是两种方法:

    其一是在程序设计阶段,可通过把数据源绑定到ADODC控件或使用数据环境;

    其二是在运行时,可以通过编程方式创建记录集RecrodSet对象并与记录集对象交换数据。


    vb.net中实现数据访问的方法主要也是二种:

    其一是在程序设计阶段,通过创建、配置数据适配器DataAdapter和生成数据集DataSet;

    其二是在运行中,通过编程方式动态创建、配置数据适配器和创建、生成数据集。


    4、3数据绑定(Data Bind)

    vb6.0中实现数据绑定通过设置控件的下列属性来实现DataChanged、DataField、DataFormat、DataMember和DataSource.通常是把控件的显示属性绑定到数据源中的的相应字段。

    vb.net中,数据绑定的应用范围可广泛的多,可以将任何控件的任何属性绑定到包含数据的任何结构中。

 

 

原创粉丝点击