html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

VB.NET基础语法_编程语言综合

[ ] 已经帮助:人解决问题

  很久以来,VB因为缺乏完善的面向对象支持、缺乏高效的错误处理机制和性能表现不佳,因而一直受到某些人的嘲笑。VB.NET将彻底改变这种情况。然而,VB.NET在这些方面的改进也要付出代价,许多旧的代码需要手工进行转换才能在VB.NET下运行。xU7HTML5中文学习网 - HTML5先行者学习网

  下面几个表格总结了VB.NET语言在语法上的改动之处。注意这些表格并没有完全列出所有改动之处,但列出了最重要的一些改动。xU7HTML5中文学习网 - HTML5先行者学习网

  表A对比了VB6中一些熟悉的语法形式及其在VB.NET中类似功能最接近的语法形式。xU7HTML5中文学习网 - HTML5先行者学习网

  表A:语法对比旧语法 新语法 说明窗体装载事件,类初始化事件 Sub New procedure Sub New称为构造方法(Constructor),它可以有参数。xU7HTML5中文学习网 - HTML5先行者学习网

  Property Let Property Set Let关键词不再有效。xU7HTML5中文学习网 - HTML5先行者学习网

  Currency Decimal 在VB6中,Decimal是Variant的一种子类型,但在。NET中它是一种固有的数据类型。。NET不再支持Currency数据类型。xU7HTML5中文学习网 - HTML5先行者学习网

  Variant Object VB.NET的Object数据类型兼有VB6 Object类型和Variant类型的能力。xU7HTML5中文学习网 - HTML5先行者学习网

  Debug.Print Debug.Write Debug.WriteLine 这个变化只是名称上的简单变化:从Print变为Write和WriteLine. Wend End While VB.NET推荐使用While循环而不是Do循环。xU7HTML5中文学习网 - HTML5先行者学习网

  为了让VB的数据类型和其他。NET语言的数据类型相匹配,Microsoft修改了整数类数据类型的表示方法,并加入了一个新的数据类型。这些改动对于进行外部调用的方法尤其重要(比如API调用)。例如,如果被调用函数需要一个32位的整数参数,则在VB6中它应该声明为Long,在VB.NET中应该声明为Integer.xU7HTML5中文学习网 - HTML5先行者学习网

  表B:和整数有关的数据类型长度 VB6以及更早版本中的名称 VB.NET中的名称16 bit Integer Short 32 bit Long Integer 64 bit (无) LongxU7HTML5中文学习网 - HTML5先行者学习网

  在VB.NET中,Microsoft减少了许多原先用于VB6的关键词,代之以“框架类”。之所以要进行这种替换,是因为框架类中的功能对所有的.NET语言都有效。下表列出了部分受影响的关键词。xU7HTML5中文学习网 - HTML5先行者学习网

  表C:被替换的关键词xU7HTML5中文学习网 - HTML5先行者学习网

  VB关键词 VB.NET名称空间中的位置 方法/属性xU7HTML5中文学习网 - HTML5先行者学习网

  Circle System.Drawing.Graphics DrawEllipsexU7HTML5中文学习网 - HTML5先行者学习网

  Line System.Drawing.Graphics DrawLinexU7HTML5中文学习网 - HTML5先行者学习网

  Atn System.Math AtanxU7HTML5中文学习网 - HTML5先行者学习网

  Sgn System.Math SignxU7HTML5中文学习网 - HTML5先行者学习网

  Sqr System.Math SqrtxU7HTML5中文学习网 - HTML5先行者学习网

  Rnd Microsoft.VisualBasic.Compatibility.VB6 RndxU7HTML5中文学习网 - HTML5先行者学习网

  Round Microsoft.VisualBasic.Compatibility.VB6 RoundxU7HTML5中文学习网 - HTML5先行者学习网

  Lset System.String PadRightxU7HTML5中文学习网 - HTML5先行者学习网

  Rset System.String PadLeftxU7HTML5中文学习网 - HTML5先行者学习网

  DoEvents System.Winforms.Application DoEventsxU7HTML5中文学习网 - HTML5先行者学习网

  VarType System.Object GetType(返回类Type的对象,其中包含了可提取出信息的属性)xU7HTML5中文学习网 - HTML5先行者学习网

  在VB.NET中,变量、数组的声明和初始化方法都有所变化,下表概要地列出了VB.NET在这方面的变化。xU7HTML5中文学习网 - HTML5先行者学习网

  表D:新的声明方法xU7HTML5中文学习网 - HTML5先行者学习网

  变化 语法举例xU7HTML5中文学习网 - HTML5先行者学习网

  单个声明语句中不能声明多种类型。 'VB.NET不允许出现下面这种声明!xU7HTML5中文学习网 - HTML5先行者学习网

  Dim nCount As Integer, bAnswer As BooleanxU7HTML5中文学习网 - HTML5先行者学习网

  声明变量时可赋予初始值 Dim nCount As Integer = 20xU7HTML5中文学习网 - HTML5先行者学习网

  Dim nDoubleCount as Integer = nCount * 2xU7HTML5中文学习网 - HTML5先行者学习网

  允许为数组元素指定初始值 Dim nIndex(3) As Integer = (3, 5, 7)xU7HTML5中文学习网 - HTML5先行者学习网

  不能用Redim进行声明,只能用Redim重新定义数组大小。 '下面这行代码在VB.NET中不合法!xU7HTML5中文学习网 - HTML5先行者学习网

  Redim sName() As StringxU7HTML5中文学习网 - HTML5先行者学习网

  大量新关键词实现了VB.NET中的新功能。下面是一些最重要的关键词及其用途、用法简例。xU7HTML5中文学习网 - HTML5先行者学习网

  表E:VB.NET的新关键词xU7HTML5中文学习网 - HTML5先行者学习网

  关键词 用途 简单例子xU7HTML5中文学习网 - HTML5先行者学习网

  Inherits 指向基类,用于实现继承。 Inherits System.WinForms.FormxU7HTML5中文学习网 - HTML5先行者学习网

  MyBase 在子类的代码中,MyBase引用基类。 StringProperty = MyBase.StringPropertyxU7HTML5中文学习网 - HTML5先行者学习网

  Shared Shared表示类的所有实例共享类里面的变量。 Public Shared BaseLocation As StringxU7HTML5中文学习网 - HTML5先行者学习网

  TryxU7HTML5中文学习网 - HTML5先行者学习网

  CatchxU7HTML5中文学习网 - HTML5先行者学习网

  FinallyxU7HTML5中文学习网 - HTML5先行者学习网

  Throw 这是新的错误处理关键词。Try开始一个启用错误控制的代码块,Catch标识一个对特定错误进行处理的代码块,Finally开始一个不管错误是否出现都必须执行的代码块,Throw抛出一个错误(类似于VB6的Err.Raise)。 TryxU7HTML5中文学习网 - HTML5先行者学习网

  rsRecordset.UpdatexU7HTML5中文学习网 - HTML5先行者学习网

  CatchxU7HTML5中文学习网 - HTML5先行者学习网

  LogError ("更新失败!")xU7HTML5中文学习网 - HTML5先行者学习网

  FinallyxU7HTML5中文学习网 - HTML5先行者学习网

  rsRecordset.MoveNextxU7HTML5中文学习网 - HTML5先行者学习网

  End TryxU7HTML5中文学习网 - HTML5先行者学习网

  ReadOnly 在属性声明中,ReadOnly指示一个只读的属性(只有Get过程的属性)。 Public ReadOnly PropertyxU7HTML5中文学习网 - HTML5先行者学习网

  StringProperty() As StringxU7HTML5中文学习网 - HTML5先行者学习网

  WriteOnly 在属性声明中,WriteOnly指示一个只能写入的属性(只有Set过程的属性)。 Public WriteOnly PropertyxU7HTML5中文学习网 - HTML5先行者学习网

  StringProperty() As StringxU7HTML5中文学习网 - HTML5先行者学习网

  Char 这是VB.NET中的单字符数据类型。 Dim chrInitial As CharxU7HTML5中文学习网 - HTML5先行者学习网

  Imports 在当前代码模块中引入指定类。 Imports System.WinFormsxU7HTML5中文学习网 - HTML5先行者学习网

  Namespace 为模块指定名称空间(Namespace)。 Namespace MyApplicationNamexU7HTML5中文学习网 - HTML5先行者学习网

  Overloads 重载。Overloads表示同一个函数名字有多个版本的实现,编译器通过函数的参数列表区分它们。 '同一个模块之内包含如下多个声明...xU7HTML5中文学习网 - HTML5先行者学习网

  Overloads Sub Display(sIn as String)xU7HTML5中文学习网 - HTML5先行者学习网

  Overloads Sub Display(nIn as Long)xU7HTML5中文学习网 - HTML5先行者学习网

  Overrides 覆盖。Overrides表示成员函数覆盖当前类所继承的基类中的指定方法。 Inherits MyBaseClassxU7HTML5中文学习网 - HTML5先行者学习网

  Overrides Function Name(nID as Long) _xU7HTML5中文学习网 - HTML5先行者学习网

  As StringxU7HTML5中文学习网 - HTML5先行者学习网

  Overridable Overridable表示任意从当前类继承的类都可以覆盖指定成员函数。 Overridable Function Name _xU7HTML5中文学习网 - HTML5先行者学习网

  (nID as Long) As StringxU7HTML5中文学习网 - HTML5先行者学习网

  MustOverride MustOverride表示任意从当前类继承的类都必须覆盖指定成员函数。 MustOverride Function Name _xU7HTML5中文学习网 - HTML5先行者学习网

  (nID as Long) As StringxU7HTML5中文学习网 - HTML5先行者学习网

  Protected Protected表示成员函数只能从当前类的派生类访问。 Protected Sub Clear()xU7HTML5中文学习网 - HTML5先行者学习网

  在以前的VB中,直至VB 4为止, Let、Set和Get属性过程是分离的。VB.NET把同一属性的属性过程放到了一起:xU7HTML5中文学习网 - HTML5先行者学习网

  Private msMyStringProperty As StringxU7HTML5中文学习网 - HTML5先行者学习网

  ' 声明区xU7HTML5中文学习网 - HTML5先行者学习网

  Public Property MyStringProperty As StringxU7HTML5中文学习网 - HTML5先行者学习网

  GetxU7HTML5中文学习网 - HTML5先行者学习网

  MyStringProperty = msMyStringPropertyxU7HTML5中文学习网 - HTML5先行者学习网

  End GetxU7HTML5中文学习网 - HTML5先行者学习网

  SetxU7HTML5中文学习网 - HTML5先行者学习网

  msMyStringProperty = MyStringPropertyxU7HTML5中文学习网 - HTML5先行者学习网

  End SetxU7HTML5中文学习网 - HTML5先行者学习网

  End PropertyxU7HTML5中文学习网 - HTML5先行者学习网

  VB.NET不再有Let属性过程,因为所有赋值语句的语法(无论是对象还是非对象)都已经一样。xU7HTML5中文学习网 - HTML5先行者学习网

  语言方面的改动远远超过了对体系结构的改动。对于大多数人来说这些改动都有意义,但仍有人对某些改动存有异议。例如,在以前的版本中,许多任务可以用多种不同的方法完成,统一的编码标准要么不存在,要么很难执行。为了“清理”VB语言,Microsoft对VB作了一些重大的改动,许多以前可以有多种实现方法的任务现在只有一种方法。xU7HTML5中文学习网 - HTML5先行者学习网

  除了前面几个表格列出的内容之外,下面是一些特别需要注意的地方。xU7HTML5中文学习网 - HTML5先行者学习网

  首先,向过程参数传递数据的默认方式由原来的传递引用(ByRef)变成了传递值(ByVal),这是一个很重要的改动。通过引用传递参数比通过值传递参数面临着更多的危险,这种危险在于被调用过程可能无意地改变参数的值。VB.NET仍旧允许以引用方式传递参数,但默认参数传递方式的改变意味着程序必须作相应的调整。xU7HTML5中文学习网 - HTML5先行者学习网

  第二,VB.NET中不再有Set语句,把对象引用赋给变量现在只需一个等号就可以了,对象可以象任何其他值一样对待。虽然省略Set简化了代码,但也有一个附带的影响:默认属性不再有效。例如,下面这种属性值引用方法不再合法:xU7HTML5中文学习网 - HTML5先行者学习网

  Text1 = "这是对象的默认属性值。"xU7HTML5中文学习网 - HTML5先行者学习网

  相反,属性值必须按照如下方式显式引用:xU7HTML5中文学习网 - HTML5先行者学习网

  Text1.Text = "这是对象的默认属性值。"xU7HTML5中文学习网 - HTML5先行者学习网

  从表面上看来,VB.NET作这种要求似乎没有必要。但事实上,它对于摆脱默认属性来说却是必要的。例如,假设有一个名字为objFoo的对象变量,由于没有了Set语句,假若属性值仍旧可以象原来一样引用,下面这个语句到底是什么意思就很难确定了:xU7HTML5中文学习网 - HTML5先行者学习网

  objFoo = Text1xU7HTML5中文学习网 - HTML5先行者学习网

  这个语句是设置了一个对Text1的引用,还是把Text1的Text属性值赋给了objFoo?我们无法作出判断,编译器也同样不能判断。因此,抛弃Set语句也就意味着必须放弃默认属性值。xU7HTML5中文学习网 - HTML5先行者学习网

  。NET中最不让人喜欢的改动:Microsoft改变了一些早就在使用的数据类型的含义。在。NET中,Integer变成了32位,而Long则是64位。可以想象,这种改变将导致程序员频繁地用错变量类型。例如,调用某个API函数时应该使用16位的Integer还是使用32位的Integer?但愿Microsoft能够重新考虑这个决定,采用一些新的变量类型名字,如Int32和Long64.xU7HTML5中文学习网 - HTML5先行者学习网

  VB.NET引入了Option Strict关键词。Option Strict关键词用于替代Option Explicit.原来的VB允许把一个数字值赋给字符串变量,或者进行其它类似的不正常赋值操作,Option Strict结束了这种情况。声明Option Strict告诉Visual Basic.NET不要进行任何强制的类型转换。当然,VB.NET也不是完全限制了类型自动转换:它允许进行向下的自动类型转换(Cast),但不支持向上的自动类型转换。例如,如果不是使用“sngvariable = CSng(dblvariable)”这类语句进行显式的类型转换,声明为Single的变量不能设置为Double变量的值,因为它可能导致数据丢失;然而,Double变量可以直接设置为Single类型变量的值,且无需显式地进行类型转换,因为这里不存在数据丢失问题。使用Option Strict能够帮助开发者减少许多错误,包括许多难以调试的错误。附带说明:使用Option Strict时不允许再使用延迟绑定。xU7HTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助