Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB和VB.NET之间有什么区别?_.net_Vb.net_Visual Studio 2008_Programming Languages_Vb6 - Fatal编程技术网

VB和VB.NET之间有什么区别?

VB和VB.NET之间有什么区别?,.net,vb.net,visual-studio-2008,programming-languages,vb6,.net,Vb.net,Visual Studio 2008,Programming Languages,Vb6,VB和VB.NET之间有什么区别 最好用示例进行解释。经典VB不支持大多数OOP功能,而VB.NET支持 主要区别在于版本号和对象方向 直到版本6,它被称为VB。从与.NET1.0一起发布的版本7开始,它被称为VB.Net 它在第7版中进行了彻底的改进,通过.Net Framework(CLI和CLS兼容性)和其他语言(如C#和Java)变得更加精简 在此转换中,一些更改导致与以前版本的向后兼容性中断。这就是为什么微软在VisualStudio中提供了一些工具来将旧的VB6应用程序转换成.Net

VB和VB.NET之间有什么区别


最好用示例进行解释。

经典VB不支持大多数OOP功能,而VB.NET支持

主要区别在于版本号和对象方向

直到版本6,它被称为VB。从与.NET1.0一起发布的版本7开始,它被称为VB.Net

它在第7版中进行了彻底的改进,通过.Net Framework(CLI和CLS兼容性)和其他语言(如C#和Java)变得更加精简

在此转换中,一些更改导致与以前版本的向后兼容性中断。这就是为什么微软在VisualStudio中提供了一些工具来将旧的VB6应用程序转换成.Net


如果您正在为一个新项目做出选择,那么相关的要点是:

  • VB6是遗留的(1998年发布,不再支持IDE,并且仅在Win8的生存期内支持运行时)
  • VS2008不支持VB6
  • VB.NET是一种现代语言,在VS2008中受支持
我想说,选择VB.OLD而不是VB.NET的理由很少(如果有的话!)


如果你“只是感兴趣”,那么维基百科关于每种语言的文章都是非常有用的,但简而言之,它们是非常不同的语言,具有表面上相似的语法。VB有自己的运行时,VB.NET是许多使用更现代的.NET框架的语言之一。

有很多不同之处

  • VB6和VB.NET中最大的变化是运行时环境。VB6使用VB运行时,而VB.NET使用.NET公共语言运行时(.NET CLR)。CLR的设计和实现要比VB运行时好得多。CLR通过即时编译器使用更好的代码翻译,而VB运行时则解释代码。CLR垃圾收集器也比VB6更高效,因为它也可以检测循环引用
  • VB6是基于解释器的语言,而VB.NET是编译语言
  • VB6不是类型安全语言,而VB.NET是类型安全语言。VB.NET中没有变量类型,VB.NET中也没有神奇的类型转换
其他一些区别:

遗产 VB.Net通过允许您定义作为派生类基础的类来支持继承。派生类继承并可以扩展基类的属性和方法。它们还可以用基类的新实现重写继承的方法。默认情况下,使用VB.Net创建的所有类都是可继承的。因为您设计的表单实际上是类,所以可以使用继承在现有表单的基础上定义新表单。有关详细信息,请参阅

异常处理

VB.NET支持结构化异常处理,使用了TIE…catch的增强版本…最后由其他语言支持的语法,如C++。结构化异常处理将现代控制结构(类似于Select Case或While)与异常、受保护的代码块和过滤器结合在一起。结构化异常处理使得使用健壮、全面的错误处理程序轻松创建和维护程序。有关详细信息,请参阅

超载 重载是定义具有相同名称但使用不同数据类型的属性、方法、过程或运算符的能力。您可以使用重载过程提供处理不同类型数据所需的尽可能多的实现,同时提供单一、多功能过程的外观。有关详细信息,请参阅

重写属性和方法 Overrides关键字允许派生对象重写从父对象继承的特征。重写的成员与从基类继承的成员具有相同的参数,但它们具有不同的实现。成员的新实现可以通过在成员名称前面加上MyBase来调用父类中的原始实现。有关详细信息,请参阅

构造函数和析构函数 构造函数是控制类的新实例初始化的过程。相反,析构函数是在类离开作用域或设置为Nothing时释放系统资源的方法。Net支持使用Sub New和Sub Finalize过程的构造函数和析构函数。有关详细信息,请参阅

数据类型 Net引入了三种新的数据类型。Char数据类型是用于存储Unicode字符的无符号16位数量。它相当于.NET Framework System.Char数据类型。在早期版本的Visual Basic中,短数据类型(带符号的16位整数)被命名为integer。十进制数据类型是一个96位有符号整数,按10的可变幂进行缩放。在早期版本的Visual Basic中,它仅在变体中可用。此外,Visual Basic现在支持无符号整数数据类型(UShort、UInteger和ULong)以及有符号类型SByte。有关详细信息,请参阅

接口 接口描述类的属性和方法,但与类不同,接口不提供实现。使用接口语句声明接口;使用Implements语句编写代码,将接口中描述的项付诸实践。有关详细信息,请参阅

代表 委托是可以代表您调用对象方法的对象,有时被描述为类型安全、面向对象的函数指针。您可以使用委托让过程指定事件发生时运行的事件处理程序方法。您还可以将委托用于多线程应用程序。有关详细信息,请参阅

共享成员 共享成员是由类的所有实例共享的属性、过程和字段。当多个对象需要使用所有对象共有的信息时,共享数据成员非常有用。您可以使用共享类方法,而无需首先从类创建对象。有关详细信息,请参阅。 参考资料

可以使用引用来定义对象