当前位置:  开发笔记 > 编程语言 > 正文

VB.NET和以前版本的VB有什么区别?

如何解决《VB.NET和以前版本的VB有什么区别?》经验,为你挑选了3个好方法。

我非常熟悉.NET之前存在的各种形式的VB(VB6,VBA,VBScript ......),但还没有深入研究VB.NET的Sweet Sweet Flavor.

所以如果有人能够快速总结一下VB.NET带来的语言差异,我将非常感激.



1> kemiller2002..:

假设你说vb你的意思是vb 6.非常大.原始的visual basic不使用.net运行时环境,虽然它们有相似的名称,但它们的语言却差别太大.Visual Basic不是完全面向对象的,但是VB.net是.错误处理在两者之间有很大不同.VB.Net尝试使用catch块,传统的vb使用On Error GOTO语句.这些只是一些差异.这个清单一直在继续.

这是一个描述"Visual Fred"名称的链接.


我们不要忘记昵称"Visual Fred".

2> Konrad Rudol..:

哦,恐怖.

抱歉,但所有现有答案在某种程度上都是错误的.乔尔实际上是最好的,但其糟糕的措辞鼓励误解(对不起,乔尔 - 但只看你的评论!):

将VB.Net与VB形成对比是不可能的,因为它们是相同的.

这就像说"苹果与水果形成对比是不可能的,因为它们是同一个东西",因此不是很有帮助; 特别是因为许多人(仍然)使用"VB"与"VB6"同义.

所以,要清楚一点:VB6和VB.NET都是Visual Basic语言系列的方言(让我们称之为).他们的相似之处至多是肤浅的; 实际上使用它们的人(不仅仅看了一些源代码)会注意到除了粗略的句法相似之外,它们是完全不同的野兽.使用它们是根本不同的体验.

它们实际上彼此相似的唯一方面(除了所述语法相似性)是它们都非常适合快速应用程序开发(RAD)......至少在你尝试使用Python或Ruby等动态语言之前GUI敏捷框架,如Shoes.但即使在RAD环境中,也存在巨大差异.

VB6已基本开发的RAD,没有别的.在它的时代,VB6是标记做RAD的最好的东西,大幅度.另一方面,VB.NET并没有被单独用于RAD开发 - 不仅仅是C#.两者都是由通用框架支持的高端语言,非常像Java,但希望改进Java的一些错误,例如通过削减大量样板代码来过度冗长(引入代理,事件,属性,运算符重载,自动装箱,但仅列举一些此类功能).

虽然VB.NET在很大程度上向后兼容,但这是非常误导的.首先,没有理智的人会说C和C++是相同的语言只是因为很多C程序在C++编译器上编译得很好.由于没有完整的VB6代码是有效的VB.NET ,VB和VB.NET之间的差异甚至更大.它需要一个自动化的"升级助手"来生成有效的.NET代码,经验表明这个升级助手甚至不适合中型项目,主要是因为它的字面翻译打破了.NET世界的许多指导和假设.

像Kibbee一样,说VB6和VB.NET的编译器"基本相同"是错误的.同样,声称".Net运行时不是对语言的改变"完全忽略了这一点.当然这是语言的变化.VB.NET完全围绕.NET框架构建,它不仅仅是任何其他库.

他声称

如果说VB.Net是一种新语言,而不仅仅是旧语言的新版本,他们就会摆脱"On Error Goto"而他们没有.

- 这同样具有误导性.包含"On Error Goto"仅用于向后兼容性(升级助手无法将旧式错误处理转换为基于异常的错误处理).

让我总结一下这个相当长的帖子的主要内容,这样就不会丢失:就像Java和JavaScript一样,VB6和VB.NET的名字非常相似(并且出于同样的原因,也就是:营销)但这个完全是误导.有一些句法上的相似之处.除此之外,表面上和引擎盖下,它们是完全不同的语言.



3> Joel Coehoor..:

VB.Net只是旨在与.Net框架一起使用的Visual Basic版本.它还对语言进行了其他更改和添加,但VB.Net与VB的对比是不可能的,因为它们是相同的.

您可以做的是与VB.Net对比VBA,VB6,或VBScript,或Visual Basic的其他变体.但VB.Net仍然 VB的一种可能变体.事实上,如果你自己看一下产品的语言部分,他们现在正在调用VB9的最新版本,VB10将在今年晚些时候推出.

以同样的方式,你不能对比"Pespi"和可乐,因为百事可乐一种可乐,但你可以对比百事可乐和可乐.

也就是说,VB的VB.Net方言带来了大量的语言变化和改进,包括对面向对象和功能范例的真正支持,以至于惯用的VB.Net代码通常与VB6时代的代码非常不同.


使用两者后,我必须不同意.
VB.Net是VB的一种风格.当然,这并不是唯一的风格,但是要相信它不是VB,因为它与VB的另一个特定变体不同,你可能只是无知.
@svinto:VB6是_one variety_的Visual Basic,但它并不是最终的所有Visual Basic.您可以将VB.Net与VB6进行对比.你无法将VB.Net与VB对比,就像你无法将VB6与VB对比一样.
不,这不对.虽然两者都是Basic的方言,但具有不同的编译器和有些相似的语法.
推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有