VB6与vbNet区别.docx
《VB6与vbNet区别.docx》由会员分享,可在线阅读,更多相关《VB6与vbNet区别.docx(14页珍藏版)》请在三一办公上搜索。
1、VB6与vbNet区别VB.NET和VB6区别 Visual Basic .NET是Microsoft Visual Studio .NET套件中主要组成部分之一。.NET版本的Visual Basic增加了更多特性,而且演化为完全面向对象的编程语言。本文将介绍VB.NET的新特性,并比较VB6.0/VB.NET之间的区别,阐述如何利用VB.NET编写简单的应用程序。 1.1 什么是 VB.NET? Microsoft推出全新的编程和操作系统Framework.NET,支持多种语言利用公共.NET库开发应用程序,这些应用程序在.NET Framework上运行。使用Visual Basic在.
2、NET Framework上编程,这就是VB.NET。 首先,让我演示在VB.NET中写最简单的控制台程序:Hello World。 1.2 Hello, World!Hello World!是初学者学习Windows编程的代表性程序。我们的第一个程序就叫做Hello VB.NET World!。该程序在控制台输出一句话:Hello VB.NET World!,代码如下所示: 代码 1.1: Hello VB.NET World例子Imports System Module Module1 Sub Main System.Console.WriteLine(Hello VB.NET World
3、!) End Sub End Module 1.3 VB.NET 编辑器和编译器你可以在记事本或VS.NET IDE等任意文本编辑器中撰写上述代码,然后保存为HelloWorld.vb。 代码编写完成之后,要么在命令行、要么在VS.NET IDE中编译它。在Microsoft .NET Framework SDK中已经包括VB.NET编译器vbc.exe1,从IDE或是命令行都可以调用。要从命令行编译HelloWorld.vb,请在命令行窗口输入 vbc HelloWorld.vb /out:HelloWorld.exe /t:exe 编译结束后,HelloWorld.exe被创建到当前目录下
4、。在资源管理其中双击图标或在命令行执行,程序正确地运行了。祝贺你进入VB.NET开发者的行列。 Imports 语句 如你所知,大部分的.NET类型都在名字空间中定义。Namespace是定义和管理类别的范畴。察看.NET Framework Class Library,可以看到数以百计的namespace。例如,System namespace就包括了Console、Object等类型定义。如果想使用Console类,需要用Imports指令导入System namespace。如下所示: Imports System甚至可以明确地调用namespace而无需用Import导入。下面的例子展
5、示了不用Import的Hello World!程序: 代码1.2: Hello VB.NET World例子Module Module1 Sub Main System.Console.WriteLine(Hello VB.NET World!) End SubEnd Module1.4 解析 Hello VB.NET World!程序第一行是: Imports System; System namespace定义了Console类,该类用于读写控制台。然后你定义了一个module:Module Module1 End Module所有的VB程序都包括一个Main方法,即应用程序入口点。在例子
6、程序中,我们调用Console.WriteLine向控制台写入Hello VB.NET World!: Sub Main Console.WriteLine(Hello VB.NET World!) End SubWriteLine方法归属于Console类,它负责向控制台写一个带有行结束符的字符串。如前所述,Console类定义于System namespace,你通过直接引用来控制类成员。 Console类负责读写系统控制台。读控制台输入用Read和ReadLine方法,向控制台输出用WriteLine方法。 表1.1 Console类定义的方法 方法 Read ReadLine Writ
7、e 用途 读入单个字符 读入一行 写一行 例子 int i = Console.Read; string str = Console.ReadLine; Console.Write(Write: 1); WriteLin写一行,并带上行结束Console.WriteLine(Test Output Data with Li符 e ne); 1.5 VB.NET有什么新特点? VB.NET比 VB6.0更加稳定,而且完全面向对象。也许你还记得,VB6.0不支持继承、重载和接口,所以不是真正面向对象的。而VB.NET则支持这些面向对象特性。VB6.0有两个薄弱环节多线程和异常处理。在VB.NET中
8、,开发多线程应用和使用C+/C#别无二致,结构化异常处理也得到支持。稍后我们会详细解释这些特性。 下面是VB.NET的特性列表 面向对象的编程语言。支持继承、重载、接口、共享成员和构造器。支持所有的CLS特性,如存取控制.NET类、与其它.NET语言交互、元数据、公共数据类型、委托等等。多线程支持。结构化异常处理。 1.6 名字空间与集合 前面讨论了我们的第一个VB.NET程序。该程序中首先引人注意的是名字空间。在.NET参考文档中,你会发现每个类都归属于某个namespace。那么,namespace到底是什么? 一个namespace是类和组件的逻辑组合,其目的在于将.NET class按
9、类别定义。微软借用了C+ class packaging概念:namespace来描述这种组合。.NET Framework中的组件被称为集合。全部.NET代码在数百个库文件中定义。Namespace把assembly中定义的类组织起来。一个namespace可以包括多个assembly,一个assembly也可以在多个namespace中定义。 namespace树的根节点是System namespace。在.NET Library中,每个class都在一组相似的类别中定义。例如,System.Data namespace只包括数据相关类。同样,System.Multithreading只
10、包括多线程类。 在使用.NET支持的语言创建新应用程序时,你会注意到每个应用程序都被定义为一个namespace,而所有的class都归属于这个namespace。通过引用这个namespace,其它应用程序就能存取这些class。 在.NET中,代码被编译为中间语言,assembly中存储了IL代码、元数据和其它资源文件。同一个assembly可以附属于一个或多个Exe/DLL。所有的.NET库都存储在assembly中。 1.7 VB.NET: 完全面向对象的编程语言抽象、封装、多态、继承是面向对象语言的四个基本属性。VB6.0不支持继承,而VB.NET则不然。所以,和C+一样,VB.NE
11、T也是完全面向对象的编程语言。 Class 和 ModuleVB.NET用Class.End Class语句对创建class。每个VB.NET至少包括一个Module。Module在ModuleEnd Module语句对中实现。应用程序的主要模块是Main方法,亦即应用程序入口点。 和VB6.0相似的地方是,都可以使用Function/Sub关键字定义方法。下面的例子显示了如何创建class、添加方法,并从主程序调用方法: Imports System Module Module1 Sub Main Dim cls As TestClass = New TestClass Console.Wr
12、iteLine(cls.MyMethod) End Sub Class TestClass Function MyMethod As String Return Test Method End Function End Class End ModuleProperty属性是类变量的公共描述。PropertyEnd Property语句用以创建property。属性的Get/Set方法分别用于取得和设置属性值。下面的例子中,Data是TestClass的属性。 Imports System Imports System.Console Module Module1 Sub Main Dim cl
13、s As TestClass = New TestClass WriteLine(cls.MyMethod) WriteLine(cls.Data) cls.Data = New Data WriteLine(cls.Data) End Sub End Module Class TestClass Private strData As String = Some Data Function MyMethod As String Return Test Method! End Function Adding Data property to the class Public Property D
14、ata As String Get Return strData End Get Set(ByVal Value As String) strData = Value End Set End Property 重载VB.NET通过overload关键字支持方法重载。使用这个关键字,你可以定义同名但不同参数的方法。 类成员访问域 除了原有的Private和Public,VB.NET引入了几个新关键字。全部访问域关键字列表如下: 关键字 Private Public Friend Protected Protected Friend 作用域 限于class内部 可以从class外访问 限于clas
15、s所属的应用程序内 只能被class和其派生类访问 能被class、应用程序和派生类访问 继承继承是面向对象编程语言中最常用的技术。继承让你能够重用类代码和功能。 VB.NET支持继承,而VB6.0则不支持。继承的好处在于你能使用任何人编写的类,从这些类派生自己的类,然后在自己的类中调用父类功能。在下面的例子中,Class B派生自Class A,我们将从Class B中调用Class A的方法MethodA。 Imports System Imports System.Console Module Module1 Sub Main Dim bObj As B = New B WriteLin
16、e(bObj.MethodA) End Sub End Module Class A defined Public Class A Function MethodA As String Return Method A is called. End Function End Class Class B, inherited from Class A. All members (Public and Protected) can be access via B now. Public Class B Inherits A Function MethodB As String Return Meth
17、od B is called. End Function End Class 可以从一个class中派生多个自定义class,也可以从多个class派生一个自定义class。 共享的成员类的共享成员被类的所有实体共享。共享成员可能是属性、方法或字段/值域。在你不想让用户全面控制自己的类时,共享成员相当有用。例如,你可以开发一个类库,让用户通过共享成员使用其中的部分功能。 可以通过class本身引用共享成员,而无需通过类的实体。例如:Module Module1 Sub Main WriteLine(A.MethodA) End Sub End Module Class A defined Pu
18、blic Class A Shared Function MethodA As String Return Method A is called. End Function End Class 多线程VB语言的一大弱点就是缺乏编写自由线程程序的能力。在.NET Framework中,所有语言共享CRL,也就是说,你可以用VB.NET、C#或其它.NET语言编写同样的程序。 System.Threading namespace定义了线程类。我们只需要引入System.Threading namespace,即可使用线程类。 System.Threading.Thread类提供线程对象,可以使用T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB6 vbNet 区别

链接地址:https://www.31ppt.com/p-3062919.html