




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB和VB.NET的比较 东华大学计算机科学技术学院信息技术系 为了使教学内容能及时跟踪当前计算机技术的发展,本学期我们采用了VB.NET程序设计教材取代了原来的VB程序设计。但目前全国计算机等级考试考的还是VB,为照顾参加等级考试的同学,我们撰写了本文,其目的是使学习了新教材的同学能够了解VB和VB.NET的主要不同点,从而能够迅速熟悉和掌握VB和VB.NET两种编程语言。.NET 是Microsoft推出全新的编程框架,支持多种语言应用程序开发。这些应用程序在.NET Framework上,在.NET公共库的支持下运行。使用Visual Basic在.NET Framework上编程,这就是Visual Basic .NET,简称VB.NET。VB.NET是Microsoft Visual Studio .NET套件中主要组成部分之一,是VB6.0的后续版本,二者几乎在90以上保持相似或相同。但是,NET版本的Visual Basic增加了更多特性,同时也对原来的VB6.0做了很多修改,演化为完全面向对象的编程语言。本文主要通过对VB6.0和VB.NET常用部分的主要不同点的比较,着重说明在实现同一功能过程中两者采用不同方法和方式。 目 录VB和VB.NET的比较11输入/输出21.1 输入21.2 输出22基本语言元素22.1命名空间22.2 语法32.3 语句52.3 类52.4 结构化异常处理53函数、过程64控件64.1基本控件64.2控件相关问题95文件105.1顺序文件105.2 随机文件106数据库101输入/输出1.1 输入VB6.0和VB.NET输入信息的方式基本相同,主要包括:键盘直接输入。InputBox函数输入。控件(文本框、列表、组合框等等)输入。1.2 输出和VB6.0和VB.NET在输出信息方式做了很大改变。在VB6.0中,用户输出信息主要采用如下方法:使用Print语句。如,Print Hello, ,VB World! 。换行使用无参数Print语句。使用GUI控件(文本框、列表、组合框等等)。内置函数。如,MsgBox()。在VB.NET中,Print语句不再被支持,取而代之的是使用控制台System.Console对象,在DOS命令行窗口输出信息。VB.NET用户输出信息主要采用如下方法:使用System.Console对象。System.Console.WriteLine(Hello, VB.NET World!)。使用GUI控件(文本框、列表、组合框等等)输出。内置对象和函数。如,MsgBox(),MessageBox.Show()。换行采用在输出的字符串中插入换行符VBCRLF。例如:MessageBox.Show(Hello & VBCRLF & VB.NET World!)2基本语言元素2.1命名空间命名空间(Namespace)是类和组件的逻辑组合,其目的在于将.NET class按类别定义。微软借用了C+ class packaging概念:Namespace来描述这种组合。大部分的.NET类型都在命名空间中定义。察看.NET Framework Class Library,可以看到数以百计的命名空间。例如,System Namespace就包括了Console、Object等类型定义。如果想使用Console类,需要用Imports指令导入System Namespace。如下所示:Imports System用户也可以明确指定调用namespace而无需用Import导入。例如,在VB6.0,用户可以直接使用内置函数,如abs(),在VB.NET必须导入或直接指定命名空间,如System.Math.abs()。2.2 语法数据类型(Data Type)的改变VB.NET对VB6.0中的部分数据类型进行了修改,下面是数据类型变化对照表。 表1 数据类型的变化编号数据类型VB6.0VB.NET1Integer16 bit size32 bit size ,System.Int322Long32 bit size64 bit size, System.Int643Currency用于存储大浮点数被decimal替代,支持更高精度4Variant可以存储任意类型数据被Object类型替代,也可以存储任意类型数据5DateDate类型被存储为double引入DateTime类型,用于存储不同格式的日期6Short16 bitSystem.Int16变量声明的变化在VB6.0中,变量声明有许多限制。其中之一就是不能同行声明多个变量。如果一定要在一行中声明多个变量,就一定得指明每个变量的类型,否则将被默认为Variant类型。Dim a1, a2 As Integer 其中,a1是Variant类型,a2是Integer类型。VB.NET支持同行声明多个变量,下面定义的变量都为Integer类型:Dim a1, a2, a3 As Integer 变量初始化是另一个问题。在VB6.0中不能同时声明和初始化变量,而VB.NET则支持这个特性。例如:Dim name As String = MaheshSystem.Console.Write(name) 声明常量也可以照此办理:Const DT_COUNT As Integer = 23 在VB.NET中,New关键字用于创建对象。由于数据类型是对象,所以New关键字用以创建一个数据类型对象。例如:Dim i As Integer = New Integer()i = 10System.Console.WriteLine(i.ToString() 像C+一样,VB.NET支持代码块级别的作用域检查。在语句块中声明的变量只在块内有效。例如:For i = 1 To 10Dim p As LongSystem.Console.WriteLine(i.ToString()Next iSystem.Console.WriteLine(p.ToString() 这段代码在VB.NET中会得到一个编译错误,因为p在For.Next语句块之外不可访问。在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。注意:MSDN文档指出数组只能包括与其尺寸相等的元素数量,例如:Dim A(10) As Integer 只能包括10个元素(从A(0)到A(9)),但在编译下面这段代码时我发现它运行良好,看起来数组中容纳了11个元素。Dim A(10) As Integer A(0) = 12 A(2) = 24 A(10) = 23 你可以在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只能用于改变数组长度,不过不能改变数组维数。Variant对阵ObjectVB6.0中的Variant数据类型能存储任意类型变量,VB.NET中Object具备相同能力。固定长度字符串在VB6.0中,可以在声明字符串时指定其长度。VB.NET不支持固定长度字符串。布尔操作符VB6.0中的And、Or或是Xor语句是按位操作符。而在VB.NET中,它们是布尔操作符。执行这些操作将返回true或false。VB.NET引入新操作符来完成按位操作。操作符 描述 BitAnd 按位AndBitOr 按位OrBitXor 按位XorBitNot 按位Not结构与自定义类型在VB6.0中,你使用TypeEnd Type语句块创建结构或自定义类型。例如:Type StdRec StdId As Integer StdName As String End Type VB.NET引入新的语法:Structure。TypeEnd Type不再被支持。StructureEnd Structure与C+用法相同。可以指定结构中每个元素的可访问域,如Public、Protected、Friend、Protected Friend、Private等。例如:Structure StdRec Public StdId As Integer Public StdName As String Private StdInternal As String End StructureVB.NET中的Structures就像类一样,也可以拥有方法和属性。New和Nothing关键字VB6.0中,AS New和Nothing关键字用于声明一个对象并初始化它。VB.NET不支持隐式创建对象。如前所言,甚至连数据类型都是对象。你可以采用以下两种方法创建数据类型或对象: Dim i As Integer Dim i As Integer = New Integer() 2.3 语句VB.NET对VB6.0的流程控制语句做了大的改变,下面是控制语句的修改情况: GoSub不再受到支持。 Call、Function和Sub语句均可用于调用过程。 On . GoSub和On . GoTo语句不再受支持。可以使用Select Case语句来替代。 While . Wend语句现在改为WhileEnd While语句。不再支持Wend关键字。Set语句取消。2.3 类除了VB6.0原有的Private和Public,VB.NET引入了几个新关键字。全部访问域关键字及其作用域列表如下: Private 限于class内部 Public 可以从class外访问 Friend 限于class所属的应用程序内 Protected只能被class和其派生类访问 Protected Friend 能被class、应用程序和派生类访问继承是面向对象编程语言中最常用的技术。继承让你能够重用类代码和功能。VB.NET支持继承,而VB6.0则不支持。2.4 结构化异常处理异常处理也被称之为错误处理。在VB6.0中,一般使用On Error Goto和On Error Resume Next来进行错误处理。这种类型的错误处理被称为非结构化异常处理(Unstructured Exception Handling)。而在VB.NET中,Microsoft推出了结构化异常处理机制。VB.NET支持类似C+的TryCatch.Finally控制。Try语句块用以抛出异常。如果异常发生,在Catch语句块中处理。Finally语句块是可选的,在需要释放资源时特别有用。3函数、过程Basic 6.0 参数未指定其默认值为 ByVal 或 ByRef 时,其默认值为 ByRef。VB.NET参数未指定其默认值为 ByVal 或 ByRef 时,其默认值为 ByVal。将参数默认值指定为 ByVal 而不指定为 ByRef,可以避免过程错误地修改由调用方传递的变量。这也使得默认的调用规则与赋值一致,以便参数有效地绑定至表达式(通过表达式赋值为正式参数)。请用户注意避免由 Visual Basic 6.0 升级到 Visual Basic.NET 带来的混乱。如果用户输入的参数声明未显式指定其默认值为 ByVal 或 ByRef,IDE 将为其自动添加 ByVal 关键字。VB6.0允许不用加圆括号调用过程(sub)。不过,用Call语句调用函数或sub时,一定要使用圆括号。例如:Dim I as IntegerCall EvaluateData(2, i) EvaluateData 2, i 在VB.NET中,所有的方法调用都需要圆括号,而Call语句则是可选的。4控件VB.NET对VB6.0控件属性作了大的修改,下面对其中的一些主要的控件属性进行分类说明。4.1基本控件标签Text: 此属性在 VB6.0 中称为 Caption。文本框AcceptsReturn: 如果设置为 True,则多行文本框会将 CRLF 当作有效字符。要禁止在文本框中输入 CRLF,请将此属性设置为 False。 AcceptsTab: 如果设置为 True,则多行文本框会将制表符当作有效字符。要禁止在文本框中输入制表符,请将此属性设置为 False。 CharacterCasing: 控制用户在此控件中键入的字母的大小写。选项包括 Normal、UpperCase 和 LowerCase。 ReadOnly: 如果要禁止用户在此文本框中输入文本,请将此属性设置为 True。此属性与原来的 Locked 属性功能相同。 TextAlign: 当用户在文本区域键入数据时,此属性控制文本的对齐方式。可将此属性设置为 Left、Right 或 Center。按钮控件BackgroundImage: 允许在按钮上设置背景图像,还可以在图像上添加文本。 DialogResult: 当将窗体作为对话框调用时,设置返回结果。如果用户按下此按钮,将返回此属性中的值。 FlatStyle: 改变按钮的外观。选项包括 Flat、PopUp、Standard 和 System。如果使用 Windows XP,则应该选择 System,因为此选项允许您使用 XP 主题。 Image: 在此按钮中显示的图像。 ImageAlign: 按钮中图像的放置位置。 ImageIndex ImageList: 控件(在 ImageList 属性中设置)中图像的索引号。 ImageList ImageList: 控件的名称,在此控件中使用 ImageIndex 属性检索图像。 Text 此属性在 VB 6.0 中称为 Caption。 TextAlign: 控制按钮上显示的文本的对齐方式。选项包括 left、right、center、middle、top 或 bottom,或任何上述选项的组合。 复选框控件AutoCheck: 如果设置为 True,则单击控件的任意位置,其状态都会从选中变为取消选中。 BackgroundImage: 允许在复选框控件上设置背景图像,还可以在图像上添加文本。 CheckAlign: 确定复选框控件的位置。Visual Basic 6.0 将文本的位置限制在复选框内的左侧或右侧。现在,您可以选择 left、right、up、down 或 center。 Checked: True=选中,False=取消选中。 CheckState: 此属性允许用户在设计时设置三种状态,以指明在运行时希望该控件显示的内容。可以选择 Checked、Unchecked 或 Indeterminate。注意:只有在将 ThreeState 属性设置为 True 时,才能设置 Indeterminate 选项。 FlatStyle: 改变复选框控件的外观。选项包括 Flat、PopUp、Standard 和 System。 Image: 在复选框中显示的图像。 ImageAlign: 复选框中图像的放置位置。 ImageIndex ImageList: 控件(在 ImageList 属性中设置)中图像的索引号。 ImageList ImageList: 控件的名称,在此控件中使用 ImageIndex 属性检索图像。 Text 此属性在 Visual Basic 6.0 中称为 Caption。 ThreeState::如果此属性设置为 True,则可以将 CheckState 属性设置为 Indeterminate,同时它还允许用户在 Checked、Unchecked 和 Indeterminate 三种状态间切换。 单选按钮控件AutoCheck: 如果设置为 True,则单击该控件的任意位置,其状态将从选中变为取消选中。 BackgroundImage: 允许在单选按钮上设置背景图像,还可以在图像上添加文本。 CheckAlign: 确定单选按钮中选中标记的位置。在 Visual Basic 6.0 中,只能将其放在文本的左侧或右侧。而在 .NET 中,您可以选择 left、right、up、down 或 center。 Checked 此属性在 Visual Basic 6.0 中称为 Value。 FlatStyle 改变单选按钮控件的外观。选项包括 Flat、PopUp、Standard 和 System。 Image 在单选按钮中显示的图像。 ImageAlign 单选按钮中图像的放置位置。 ImageIndex ImageList 控件(在 ImageList 属性中设置)中图像的索引号。 ImageList ImageList 控件的名称,在此控件中使用 ImageIndex 属性检索图像。 Text 此属性在 VB6.0 中称为 Caption。 TextAlign: 控制单选按钮上显示的文本的对齐方式。可将此属性设置为 left、right、center、middle、top 或 bottom,或上述任何选项的组合。组合框控件DisplayMember: 在控件的列表部分显示从每一对象加载到 ComboBox 中的项。DisplayMember 的默认值是 ToString 方法。 DropDownStyle: 此属性在 VB6.0 中称为 Style。与在 VB6.0 中一样,您可以选择 Simple、DropDownList 和 DropDown。 DropDownWidth: 组合框下拉部分的宽度(以像素计算)。可以不同于窗体上组合框的实际尺寸。 MaxDropDownItems: 用户使用组合框的下拉部分时允许显示的项数。 MaxLength: 将 DropDownStyle 属性设置为 Simple 时,可以输入的最大字符数。 ValueMember: 从选定项中检索数据。默认值为 ToString 方法。列表框控件ColumnWidth 将 MultiColumn 属性设置为 True 时各列的宽度。DisplayMember 在控件的列表部分显示从每一对象加载到 ListBox 中的项。DisplayMember 的默认值是 ToString 方法。HorizontalExtent 如果将 HorizontalScrollbar 属性设置为 True,则可以在此属性中输入一个数字,表示滚动条可以滚动的最大宽度(以像素计算)。 HorizontalScrollbar 如果不想在数据的宽度大于此方框时显示水平滚动条,请将该属性设置为 False。ItemHeight 使用固定字体时列表框中各项的高度。 Items 代替 VB6.0 ListBox 控件的 List 属性。 MultiColumn 代替 VB6.0 中的 Columns 属性。如果希望显示多行,请将此值设置为 True。 ScrollAlwaysVisible 如果希望在数据量很少时仍显示滚动条,请将此属性设置为 True。这有助于用户根据此列表框中可能输入的数据确定列表框的适当宽度。如果在运行时加载数据后,可以看到滚动条,最好能够在数据太大时正确设置控件的宽度。 SelectionMode 代替 VB6.0 中的 MultiSelect 属性。 UseTabStop 如果不希望 Tab 字符在列表框中代表不同的列,请将此属性设置为 False。 ValueMember 从选定项中检索数据。默认值为 ToString 方法。 图片框控件BackgroundImage 允许在图片框上设置背景图像,还可以在图像上添加文本。 BorderStyle 包括 None、Fixed 和 Fixed3D 选项。 Image 用于代替 Picture 属性。 SizeMode 控制图片的显示方式。可以选择的值包括 Normal、StretchImage、AutoSize 和 CenterImage。 HScrollBar 控件Maximum 代替 VB6.0 中的 Max 属性。 Minimum 代替 VB6.0 中的 Min 属性。VScrollBar 控件Maximum 代替 VB6.0 中的 Max 属性。 Minimum 代替 VB6.0 中的 Min 属性。 其他控件除了 VB6.0 中的标准控件外,VB.NET 中还升级了许多其他控件。实际上,升级的控件非常多。了解本文列出的变化后,对以后在 .NET 中使用这些新控件时遇到的变化类型就会有一个清楚的认识。使用 Anchor 属性,您不必编写任何代码行就能将控件锚定在窗体的任何边。通过选择图形化菜单中的选项,您可以选择所需的操作。在代码中,可以使用诸如 TopLeft、BottomRight、Left、Right、Top、Bottom、TopLeftBottom 和 All 等常量来设置属性值。Dock 属性类似于 Anchor 属性,使您可以将控件靠接到容器的任何边。靠接控件时,控件将随窗体的缩放而缩放,但其靠接的边保持不变,如果将控件靠接在窗体的所有边,则控件将充满整个窗体。4.2控件相关问题关于控件数组在 VB6.0 中,将所有控件的 Name 属性设置为相同的值便可以创建控件数组。随后,每个控件的 Index 属性会被设置为不同的编号。Index 值被传递给该组控件的任意事件,这样您就可以知道哪个控件调用了该事件。这是 VB6.0 中控件数组的用途之一,即一个事件过程处理多个控件的代码。 而在 VB.NET 中,处理控件数组的方式则大不一样。实现一个过程处理多个控件的事件的方法有两种:使用内嵌于 .NET 类中的 AddHandler 过程,或在过程中使用 Handles 子句。如果您只希望编写一个 Click 事件,使窗体底部的所有按钮都具备该事件,您可以双击其中一个按钮,使代码窗口生成一个 Click 事件过程。此过程的代码如下:Private Sub btnSave_Click( ByVal sender As Object, ByVal e As System.EventArgs) _Handles btnSave.Click, btnNew.Click, btnDelete.Click MessageBox.Show(Click 事件)End Sub尽管以上代码很简单,但它说明了不同控件如何调用同一过程。除了创建控件数组,您还可以通过创建并指定事件处理程序来响应多个控件的一个或多个事件。默认和取消按钮在VB6.0中,需要将 CommandButton 控件的 Default 属性设置为 True,以告诉 Visual Basic 当按下 Enter 键时应该调用此按钮的 Click 事件;设置另一个 CommandButton 控件的 Cancel 属性,以告诉 Visual Basic 当按下 Esc 键时应该调用此按钮的 Click 事件;然后还必须为上述每个 Click 事件过程编写代码以关闭窗体,并且很可能需要设置属性,告诉调用此窗体的例程按下的是哪个按钮。在VB.NET中,用户无需为这些按钮编写任何代码即可实现此目的,用户只需将每个按钮的 DialogResult 属性设置为特定的值。例如,如果窗体上包含“确定”和“取消”按钮,请将这两个按钮的 DialogResult 属性分别设置为 OK 和 Cancel。然后将窗体的 AcceptButton 属性设置为“确定”按钮,将窗体的 CancelButton 属性设置为“取消”按钮。完成这些属性的设置后,便可以使用 ShowDialog 方法显示窗体,而且两个按钮都可以自动关闭窗体。然后,窗体的 DialogResult 属性会被设置为在按下的按钮中设置的 DialogResult 值。这样,就可以从调用程序内部确定关闭窗体的按钮。字体属性设置VB.NET的字体设置方法与VB6.0不同,后者可通过直接设置相关属性来实现。 例如,要把文本框TextBox1的字体设置为“宋体”,12pt,斜体字,可以如下语句实现:TextBox1.FontName=”宋体”TextBox1.FontSize=12TextBox1.FontItalic=true而VB.NET则要创建新的字体对象。例如,实现上述功能的VB.NET语句应该为:TextBox1.Font=new Font(”宋体”,12.0!, TextBox1.FontSytle or Style.Italic)5文件VB.NET和VB6.0在文件操作上有很大不同。VB.NET 提供了灵活的读写文件的功能。可以使用多种方法获得相同的结果。下面按文件类型分别进行简要介绍。5.1顺序文件在VB.NET中,要打开一个顺序文件,可以创建 StreamR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学六年级语文上册课文阅读练习合集
- 桥梁施工临时助航标志布置方案
- 六年级音乐课堂教学实践报告
- 2025YY大酒店餐饮外包服务合同书
- 基建项目土方施工安全控制方案
- 七年级生物下册 4.14.1 人类活动对生物圈的影响说课稿 (新版)北师大版
- 钢结构施工安全管理要点分析
- Unit 6 Section A 2a-2e说课稿 人教版英语七年级上册
- Unit 6 developing ideas reading for writing说课稿 外研版(2024)七年级英语上册
- 化学公开课金属元素反应设计范本
- 二城市轨道交通类型111课件
- 研学活动合同协议书模板
- 医疗器械售后服务团队的职责说明
- 食品配料人员培训
- 工程勘察设计收费标准(2002年修订本)
- 规范团费账户管理制度
- 消防救援队伍灭火救援作战训练安全专题授课
- 公安审讯技巧培训
- 人教版2025初中物理实验室安全使用指南
- 销售团队组建方案-
- 考古调查勘探辅助工程方案投标文件(技术方案)
评论
0/150
提交评论