VB还是C#,如何选择?

原创 2002年03月03日 18:41:00

Visual Basic.net还是C#

——如何选择.net语言

.net中,如何选择VBC#?这似乎已经争论了很久。很多人盲目选择,也产生了许多流言和错误。本文将从以下方面指导你选择正确的开发语言。

功能上的考虑

许多人认为C#的功能比VB.net强大,或者C#更加适合.net等。其实这不是一两句话能比较清楚的。C#的确有VB无法完成的功能,但VB也有C#无法完成的功能。总的来说,对于.net开发,VBC#没有任何差别,都100%兼容于CLS。下面列出的是他们语言功能上的不同,这些仅仅是语言实现上的问题,不会影响到生成的代码。*号的内容与CLS不兼容

C#有而VB没有的功能:

1、  运算符重载。*

2、  不安全代码(指针和固定内存区)。*

3、  无符号整数。*

4、  移位运算。

VB有而C#没有的功能

1、  即时编译。

2、  静态事件绑定。

3、  条件异常捕获。

4、  COM兼容类。*

5、  宽松的类型检查和变量声明。

6、  Visual Basic Runtime库。

7、  可选参数、带参数属性、模块等语言特征。*

8、  动态数组。*

可见,实际上功能更强大的是VB而不是C#。不过它们不一样的地方多半是无关紧要的特征。总体上来说,不应从功能上选择VB或者C#,因为他们没有什么具体的差别。

性能上的考虑

性能是程序员最关心的问题。VBC#都生成一样的IL,因此理论上说不会有性能的差异。但许多人为什么说C#的性能高于VB.net呢?这是因为VB.net支持即时编译,就是一边书写代码一边编译。这样可立刻发现语法错误,使调试变得更加容易。但是这样一来VB就需要随时浏览整个代码文件,并把临时数据储存。这造成VB.net生成的代码中常常具有冗余部分。但也不能就此下结论说VBC#慢,当用户选择打开优化并且以Release方式编译工程,就能得到与C#一样简短快速的代码。

学习上的难度

这部分不仅仅初学者需要考虑,那些从现有开发工具转移到.net的开发人员也需要考虑。首先,VBC#都是非常简单的,对于初学者来说,VB提供伸缩性更强的空间,因此比C#更加易于接受。但这只是相对而言,C#对于初学者来说也不会有太多的困难。

对于使用Visual Basic6或其他版本的程序员来说。VB.net的语法显然要比C#更加接近VB6,网上流传的VBVB.net差别被过分夸大,使部分程序员退缩。其实VB.net增加的只是面向对象的思想,许多VB程序员不具备完善的面向对象编程开发经验,因此觉得VB.net难以接受,这是很容易克服的。想想看,即使你要使用C#不也得学习面向对象吗?至于有C/C++/Java经验的人,C#是小菜一碟。刚才说过C#VB实际上都很简单,所以不见得VB程序员学习C#就要比C/C++程序员来的困难,反之亦然,有C/C++经验的人也可以果断的选择VB

移植现有代码

这一部分是程序员最头疼的部分。但对语言选择有决定性的意义。

VB6移植代码的程序员,最佳选择就是VB.net,因为其他.net语言没有一种是与VB相似的。而且即使VB6的工程移植到VB.net非常困难,也有一个移植向导可以帮助你完成大部分工作。如果手工把他移植到C#,需要白白花费大量的时间。而且刚开始使用C#VB程序员通常都会为C#缺少他们熟悉的函数而头疼。VB.net不会出现这种情况。

ASP移植到ASP.net,首选语言仍然是VB.net,因为多数程序员使用的ASP语言是VBScript,只有VB.net最大程度地接近这种语言。

C#对于移植代码似乎没有作用,了解C#的人都明白,把现有C/C++代码放到C#中运行几乎是100%不能通过的。所以,如果需要移植C/C++代码,最好使用Visual C++.net。他做到了最好的新旧结合。C#仅仅用于编写新的.net应用程序。

如果需要从Java移植代码,C#可以选择。同时还有J#及其他一些MS提供的转换工具。

文档和资源方面的考虑

MSDN文档中,C#VB是同等看待的。所有文档和例子都是有VBC#两份的。因此,在寻求资源方面都不用担心。互联网上的资源,C#要多于VB,特别是国内,有倾向于C#的潮流。但是ASP.net的资源VB较多。国内缺乏VB.net资源是影响VB.net推广的重要原因。但是在国外有很多非常成熟的VB技术,如掌上设备的开发技术。

代码风格和杂项问题

C#书写的代码比VB平均短小20%,许多人不喜欢VB中过长的关键字。当然他们可以选择C#。但在开发环境中,VB的自动完成功能比C#更完善,其实30%的代码都是自动补充的。因此,实际上VB程序员不会比C#多打多少字。但VB语言换行比C#麻烦,如果需要书写大量繁杂而长的代码,最好选择C#VB的代码接近完整的英语,比C#更加易读。如果是初学者不妨选择VB

选择 VB.NET 还是 C# ?

这个话题已经被争论很久了, 从国外到国内, 从学校到企业. 当然市场没有限制我们只能选择一种语言, 所以我们可以学学这个, 同时也学学那个, 但如果你想我给出一个单一答案: 我会选择 “能让我赚最多钱...
  • oiio
  • oiio
  • 2006年06月16日 11:33
  • 13949

将VB.NET网站转换成C#的全过程

在学习URL重写过程中碰到个是VB写的源码,看起来总是不爽的就GOOLE了下 感觉这个文章写的不错原文地址 http://www.cnblogs.com/cngunner/archive/2006/0...
  • swort_177
  • swort_177
  • 2008年06月21日 20:20
  • 5819

推荐n个VB.Net to C# (C# to VB.net)代码转换(互换互转)工具

以下是n个VB.Net to C# (C# to VB.net)代码转换(互换互转)工具1.http://www.kamalpatel.net/(最常用的,不过对于16进制的Int不能正常转换)在线版...
  • metababy
  • metababy
  • 2006年03月30日 15:31
  • 8468

VB与C#相互转换

VB.NET Program Structure C# Imports System             Namespace H...
  • minsenwu
  • minsenwu
  • 2012年05月30日 10:17
  • 5572

vb.net与c#相比有什么优势和区别?

vb.net与c#相比有什么优势和区别?       这世界上没有什么比编程工具更加牵动程序员的心。VC、VB、DELPHI、JAVA……这些耀眼的名字不仅占据了程序员的生活,而且似乎已经成为了某种信...
  • wengman
  • wengman
  • 2009年03月26日 16:23
  • 7364

vb.net和c#的区别

用vb.net和c#都有一段时间了,虽然知道其中不仅仅只有语法的差异,但一直没时间一一研究到底有哪些不同,今天突然在网上看到一网友提供了此心得,遂转载。 //全局层 VB支持Module,是一种全...
  • cooska
  • cooska
  • 2013年01月10日 15:04
  • 4448

C#与VB的比较

初识C#,越听越不懂。很多名词都没有接触过,不过当查阅资料后,慢慢地追上楚广明老师的思路。 作为一门编程语言,C#有其独有的特点,也有同其它语言类似的方面,在这里对C#基础与VB对比来做一个小结。 ...
  • a137151062
  • a137151062
  • 2013年02月01日 20:06
  • 7791

【C#】—vb和c#实现对比

前两篇文章都是写的关于c#的概念性的东西,在学习敲了几章设计模式中的例子后,真是的感觉到和自己之前总结的有所不同。然后又结合vb功能实现和c#功能实现在总结下。     一、vb功能实现。 ...
  • u013036959
  • u013036959
  • 2014年12月07日 11:50
  • 2320

vb.net与c#相互转换工具

vb.net与c#相互转换工具:http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspxhttp://www.dotnetsp...
  • downmoon
  • downmoon
  • 2005年08月09日 11:31
  • 25751

VB.NET与C#之间的比较

在网上经常能看到一些评论和比较C#、VB.net优劣的文章。其中绝大多数都认为:VB.net没有它存在的必要,VB.net迟早要被C#取代。确实,计算机语言不是很重要的,也许讨论它有点无聊。所以还希望...
  • irix2008
  • irix2008
  • 2013年09月29日 10:14
  • 1342
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB还是C#,如何选择?
举报原因:
原因补充:

(最多只允许输入30个字)