VB和VB.NET有什么区别?
最好用示例来解释。
VB和VB.NET有什么区别?
最好用示例来解释。
有很多不同之处。
其他一些区别:
VB.Net通过允许您定义作为派生类基础的类来支持继承。派生类继承并可以扩展基类的属性和方法。他们可以还可以重写基类的方法并提供新的实现。所有使用VB.Net创建的类默认都是可继承的。因为您设计的窗体实际上是类,所以可以使用继承来定义基于现有窗体的新窗体。有关详细信息,请参见Visual Basic中的继承。
VB.Net支持结构化异常处理,使用其他语言(如C++)所支持的Try...Catch...Finally语法的增强版本。结构化异常处理将现代控制结构(类似于Select Case或While)与异常、受保护的代码块和过滤器相结合。结构化异常处理使得创建和维护具有强大的全面错误处理程序的程序变得容易。有关详细信息,请参见异常处理简介。
重载是定义具有相同名称但使用不同数据类型的属性、方法、过程或运算符的能力。您可以使用重载过程来提供尽可能多的实现以处理不同类型的数据,同时给出单个、通用的过程的外观。有关详细信息,请参见重载属性和方法。
Overrides关键字允许派生对象覆盖从父对象继承的特性。被覆盖的成员和从基类继承的成员具有相同的参数,但它们具有不同的实现。成员的新实现可以通过在成员名称前面加上MyBase来调用父类中的原始实现。有关详细信息,请参见覆盖属性和方法。
构造函数是控制类的新实例初始化的过程。相反地,析构函数是在一个类离开作用域或设置为Nothing时释放系统资源的方法。VB.Net使用Sub New和Sub Finalize过程来支持构造函数和析构函数。详细信息请参见对象生存期:如何创建和销毁对象。
VB.Net引入了三种新的数据类型。Char数据类型是用于存储Unicode字符的无符号16位字,它等同于.NET Framework System.Char数据类型。Short数据类型是一种带符号的16位整数,在早期版本的Visual Basic中称为Integer。Decimal数据类型是一个96位带符号整数,由可变的10的幂比例缩放。在早期版本的Visual Basic中,它仅在Variant中可用。此外,Visual Basic现在还支持无符号整数数据类型(UShort、UInteger和ULong),以及有符号类型SByte。详细信息请参见Visual Basic中的数据类型。
接口描述类的属性和方法,但与类不同,接口不提供实现。使用Interface语句声明接口;使用Implements语句编写代码,将接口中描述的项付诸实践。详细信息请参见Visual Basic中的接口。
委托是可以代表您调用对象方法的对象,有时被描述为类型安全的面向对象函数指针。您可以使用委托来让过程指定在事件发生时运行的事件处理程序方法。您还可以在多线程应用程序中使用委托。详细信息请参见委托和AddressOf运算符。
共享成员是所有类实例共享的属性、过程和字段。当多个对象需要使用所有对象都通用的信息时,共享数据成员很有用。您可以在不首先从类创建对象的情况下使用共享类方法。详细信息请参见Visual Basic中的共享成员。
您可以使用引用来使用在其他程序集中定义的对象。在VB.Net中,引用指向程序集而不是类型库。详细信息请参见引用和Imports语句。
命名空间通过将类、接口和方法组织成层次结构来防止命名冲突。有关详细信息,请参见Visual Basic中的命名空间。
程序集通过描述特定组件或应用程序所需的所有文件来替换和扩展类型库的功能。一个程序集可以包含一个或多个命名空间。有关详细信息,请参见程序集。
您可以使用属性为程序元素提供其他信息。例如,您可以使用属性指定当作为XML Web服务使用类时应公开哪些方法。有关详细信息,请参见Visual Basic中的属性。
您可以使用VB.Net编写能够独立执行多个任务的应用程序。可以在单独的线程上执行可以阻塞其他任务的任务,这个过程被称为多线程。通过使复杂任务运行在与用户界面分离的线程上,多线程使您的应用程序对用户输入更加响应。有关详细信息,请参见多线程应用程序。
VB.Net现在支持对整数数据类型(Byte、Short、Integer和Long)以及无符号类型(UShort、UInteger和ULong)执行算术左移和右移操作。算术移位不是循环移位,这意味着从结果的一端移出的位不会重新进入另一端。相应的赋值运算符也被提供。有关详细信息,请参见位移运算符和赋值运算符。
您可以使用VB.Net将循环变量声明为For或ForEach循环的一部分。您可以在For或ForEach语句中为变量包括一个As子句,前提是没有在循环之外声明该名称的变量。以这种方式声明的循环变量的作用域仅限于循环本身。有关详细信息,请参见For...Next语句(Visual Basic)和ForEach...Next语句(Visual Basic)。
更多信息:
编辑:如评论所述,一些特性如构造函数在 VB6 中已经支持(以不同的方式),请查看最后一个链接以更全面地了解这一点。
如果你正在为一个新项目做出选择,那么相关要点如下:
我会说几乎没有任何理由选择VB.OLD而不是VB.NET。
如果你“只是感兴趣”,那么维基百科对每种语言的文章相当有信息量,但简而言之,它们是截然不同的语言,具有表面上相似的语法。VB拥有其自己的运行时,而VB.NET是使用更现代的.NET框架的众多语言之一。
经典的VB不支持大部分面向对象编程特性,而VB.NET则支持。