vb 和vb.net的区别
源地址:http://blog.csdn.net/xjc1278003262/article/details/8805324
在随着VB.NET的 发展,大部分人都放弃使用VB6.0而选择VB.NET,下面我们就来研究一下VB6.0和VB.NET的区别。VB.NET是微软公司在2002年推出 的一种开发基于.Net平台应用程序的开发语言,也是微软公司极力推荐的一种开发.Net平台应用程序的开发语言。首先还是让我们来简单了解一下 VB.NET和其前一个版本,也是目前世界上拥有最多使用者的开发语言--VB 6.0的主要区别。
VB6.0和VB.NET的主要区别简介:
虽然说VB.NET是VB
6.0的后继版本,但在我看来VB.NET除了在语法上还保留VB6.0原有的踪影以外,因为二者几乎在90%以上保持相似或相同。但在其他很多方
面,VB.NET都和VB6.0截然不同。也许正是这些不同点,才使得VB.NET功能更强大,更有生命力,但同样也为VB6.0程序员转型为
VB.NET程序员带来了困难。因为VB.NET提出了很多新的功能、概念和观点,掌握VB.NET不仅要掌握语法,还需要理解并运用这些新的功能、概念
和观点。当然也需要掌握.Net框架,理解CLR(CommonLanguage
Runtime,通用语言进行时)。
一、VB6.0面向对象内容:
二、VB.NET的类别:
三、数据类型的区别:
四、变量声明的区别:
在VB6.0中,变量声明有许多限制。其中之一就是不能同行声明多个变量。如果一定要在一行中声明多个变量,就一定得指明每个变量的类型,否则将被默认为Variant类型。
- <span style="font-family:KaiTi_GB2312;font-size:18px;">1. Dim a1, a2 As Integer
- 2. Dim a3 As Integer, a4 As Integer
- </span>
第一行中的a1是Variant类型,a2是Integer类型。第二行中两个变量都是Integer类型。
VB.NET支持同行声明多个变量,举例如下:
- <span style="font-family:KaiTi_GB2312;font-size:18px;">1. Dim a1, a2, a3 As Integer </span>
变量初始化是另一个问题。在VB6.0中不能同时声明和初始化变量,而VB.NET则支持这个特性
VB.NET支持同行声明多个变量,举例如下:
- <span style="font-family:KaiTi_GB2312;font-size:18px;">1. Dim a1, a2, a3 As Integer </span>
变量初始化是另一个问题。在VB6.0中不能同时声明和初始化变量,而VB.NET则支持这个特性。
五、数组的区别:
VB.NET对数组作了明显的改动。在VB.NET中,你需要格外留意数组范围问题。VB6.0默认数组下界为0,故数组中的元素数量等与数组上界值加一。下面的数组界限从A(0)到A(10),共有11个元素:
- <span style="font-family:KaiTi_GB2312;font-size:18px;">1. Dim A(10) As Single </span>
可以使用OptionBase改变下界值为1。在VB.NET中,数组和C++一样,下界值为0,不支持Option Base。
六、布尔操作符
VB6.0中的And、Or或是Xor语句是按位操作符。而在VB.NET中,它们是布尔操作符。执行这些操作将返回true或false。VB.NET引入新操作符来完成按位操作。
七、不支持Set语句
VB6.0使用Set语句指派对象。例如:
- <span style="font-family:KaiTi_GB2312;font-size:18px;">1. Set myObj = new MyObject
- 2. Set a = b
- </span>
在VB.NET中,不需要使用Set指派对象。例如:
- <span style="font-family:KaiTi_GB2312;font-size:18px;">1. myObj = new MyObj()
- 2. a = b
- </span>
八、new和nothing关键字
VB6.0中,AS New和Nothing关键字用于声明一个对象并初始化它。
VB.NET不支持隐式创建对象。
九、 数据访问:
不同点主要表现在:数据访问技术、数据访问具体实现方法和数据绑定上的不同。
在数据访问技术上,VB 6.0是
通过ADO(Active X Data Object,即:Active
X数据对象)来实现对数据库访问的。同时为了保证对早期版本的兼容,也提供RDO(远程数据对象)和DAO(数据访问对象)二种数据访问技术。在
VB.NET中是使用ADO.NET来访问数据库,ADO.NET是.NET框架的一部分,其对应的类库是.Net FrameWork
SDK的真子集。ADO和ADO.NET这两种技术在概念、功能和实现上都有许多差异。由于篇幅所限,这里就不一一介绍了。其实在VB.NET中也可以使
用ADO来访问数据库,但ADO在VB.NET中是以COM组件的形式出现的,通过添加引用才可以在VB.NET中使用。添加引用的过程,其实就是对
COM组件互操作。经过互操作后的COM组件,已经并非先前意义上的COM组件,而是转变成可供VB.NET直接使用的.Net类库。
在数据访问的具体实现方法上,VB 6.0实
现数据访问主要是两种方法:其一是在程序设计阶段,可通过把数据源绑定到ADODC控件或使用数据环境;其二在运行时,可以通过编程方式创建记录集
RecordSet对象并与记录集对象交换数据。同样在VB.NET中实现数据访问的方法主要也是二种:其一是在程序设计阶段,通过创建、配置数据适配器
DataAdapter和生成数据集DataSet;其二在运行中,通过编程方式动态创建、配置数据适配器和创建、生成数据集。
在数据绑定(Data Bind)
上,在VB
6.0中实现数据绑定通过设置控件的下列属性来实现:DataChanged、DataField、DataFormat、DataMember 和
DataSource。通常是把控件的显示属性绑定到数据源中的相应字段。在VB.NET中,数据绑定的应用范围可广泛得多,VB.NET中可以将任何控
件的任何属性绑定到包含数据的任何结构中。
十、 Web开发:
VB是使用Active Server Page(简
称ASP)来创建在
Web应用程序。在ASP中,编写Web页面并非纯正的VB语言,而是VB脚本语言--VBScript。在VB.NET中是使用ASP.NET技术来编
写Web页面。在ASP.NET中使用的也不再是脚本语言,而是真正意义编程语言,其中就可以是VB.NET。开发过ASP页面的朋友都清楚,虽然编写
ASP页面对开发工具要求很低,但由于其是面向过程式开发,所以稍微复杂一点的ASP代码都显得杂乱无章,这都给程序设计、调试、修改带来了麻烦。而
VB.NET是建立在新的框架结构上,VB.NET完全支持Web编程。凭借ASP.NET的Web
应用程序、XML Web services等等基于Web上的功能,使得VB.NET开发Web
页面与开发Windows编程很相似,Web页面代码也不显得有条有理了。
十一、 组件创建:
在使用VB 6.0和
VB.NET编写应用程序时,虽然都可以通过从工具箱中选择组件,通过拖入方式在应用程序中加入组件,但二者在实现机理上却存在根本不同。在VB
6.0中,应用程序中创建的组件全部是COM组件,即可在COM应用程序中使用的ActiveX控件、ActiveX
类型的DLL
和ActiveX类型的EXE。而在VB.NET中,向窗体中拖入的组件,都是基于继承,从.Net框架提供的SDK中相应的类继承,经过实例化后,通过
添加功能才把组件加入到设计窗体中。这些过程都可以在VB.NET的源代码中找到。VB.NET中使用的每一个组件都是从Component或
Control基类派生出来的。
当然VB6.0和VB.NET之间还存在很多差别,如:VB 6.0 只提供单线程模式,并不支持多线程。而在VB.NET全面支持多线程。并且在VB.NET中还增加了结构化异常处理等新的功能。
vb 和vb.net的区别的更多相关文章
-
vb和vb.net事件机制
学习java事件前,回顾了下vb6和vb.net的事件机制,总结在这里,供对比用. 事件是面对对象中对象间通信的方法.事件发生者(又叫事件源)发生一个事件时,通过发送一条消息,给事件接受者(事件处理者 ...
-
VB.NET与C# 语法区别展示
在学习VB.NET后发现,VB.NET与C#的语法主要的不同在两个部分,这两部分搞通了,那就游刃有余,迎刃而解了.现将其对比总结如下: 一.实体部分 (与VB相比,在C#和VB.NET中,实体的使用很 ...
-
vb.net 与 c# 运算符区别
vb.net vs c# 详细的Operators运算符区别 vb.net ===================== Comparison = < > <= >= <& ...
-
VB中 &#39;&;&#39; 和 &#39;+&#39; 号的区别
释义 &(Ampersand)是英语单字and之代表符号,亦可用作中文中的“和”.“与”之代表符号.这个符号源于拉丁文的et的连写. 可读做 ampersand,即 "and per ...
-
VB中 ByRef与ByVal区别
函数调用的参数传递有"值传递"和"引用传递"两种传递方式.如果采用"值传递",在函数内部改变了参数的值,主调程序的对应变量的值不会改变:如果 ...
-
VB VBA VBS有什么区别?
VB和VBA本就是同宗的姐妹,只不过姐姐VB的功夫要比妹妹VBA历害些.不过姐姐只会单打独斗是女强人:妹妹却只会傍大款(例如Office).姐姐有生育能力,是真正的女人:妹妹却不会生崽(生成.EXE) ...
-
VB和VB.NET有什么区别
作为VB6.0的后续版本,VB.NET更加稳定,而且完全面向对象.也许你还记得,VB6.0部支持继承.重载和接口,所以不是真正面向对象的.而VB.NET则支持这些面向对象特性.VB6.0有两个薄弱环节 ...
-
Vb.net/VB 声明API功能父窗口功能
回想第一次敲房费,他说自己是api函数实现父窗口及其子窗口最小化的功能.现在再次遇到,自己就在思考,能不能继续使用API函数呢?答案当然是Of Course! 事实上细致看两者并没有多大的差别,先看看 ...
-
Vb.net/VB 声明API函数实现父窗口功能
回想第一次敲机房收费.自己调用了api函数实现了父窗口及其子窗口最小化的功能.现在再次遇到,自己就在思考,能不能继续使用API函数呢?答案当然是Of Course! 事实上细致看两者并没有多大的差别. ...
随机推荐
-
Golang gopath
golang 的gopath 至关重要,会影响到我们import package. golang 支持以相对路径的方式import,但是这种方式是不推荐的. 推荐的做法是在gopath中添加我们的项目 ...
-
记录Java的垃圾回收机制和几种引用
一.Java的垃圾回收机制 Java的垃圾回收机制(java garbage collection)是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的堆内存空间. ...
-
64位与32位编程的数据类型区别(C/C++)
C/C++仅仅定义了这些基本数据类型之间的关系,并没有定义严格定义它们的字长.在不同的平台上,根据编译器不同的实现,它们的字长如下表所示: 数据类型 LP64 ILP64 LLP64 ILP32 LP ...
-
awk ‘! a[$0]++’ 去重
awk '! a[$0]++' 怎么理解? 这是一个非常经典的去重复项的awk语句,虽然短小,不过涉及到了不少知识点,下面一一解读: <1> :"!" 即非. < ...
-
jQuery&;Ajax应用
jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第二层是load(),$.get()和$.post()方法,第三层是$.getScript(),$.getJ ...
-
IDEA 最新版永久破解最简单方法(版本 IntelliJ IDEA 2018.3.5)
版权声明:本文为博主原创文章,仅作为学习交流使用,请在阅读后自行删除, 未经博主允许不得转载.https://www.cnblogs.com/linck/p/10522045.html 1.官网下载专 ...
-
如何在MySQL中设置主从复制
mysql主从同步定义 主从同步机制 配置主从同步 配置主服务器 配置从服务器 使用主从同步来备份 使用mysqldump来备份 备份原始文件 主从同步的小技巧 排错 Slave_IO_Running ...
-
linux nginx 如何配置多个端口
在linux下发布.netcore 应用,并使用nginx进行反向代理,参照博客园文章 https://www.cnblogs.com/ants/p/5732337.html#autoid-7-3-0 ...
-
MyBatis3-配置使用log4j输出日志
配置步骤: 1.POM的依赖引入 <!-- log4j --> <!-- https://mvnrepository.com/artifact/log4j/log4j --> ...
-
Docker 入门 第一部分: 定位和设置
目录 Docker 入门 第一部分: 定位和设置 Docker概念 镜像和容器 容器和虚拟机 准备你的Docker环境 测试 Docker 的版本 测试 Docker 安装 回顾 总结 Docker ...