Small Basic中文站-快乐编程

 找回密码
 注册
搜索
查看: 8632|回复: 1

新手学VB.Net好还是C#好?

[复制链接]
发表于 2010-6-14 15:23:10 | 显示全部楼层 |阅读模式
VB.Net还是C#    参考百度知道 :http://zhidao.baidu.com/question/62679152.html


——如何选择.net语言


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


功能上的考虑


许多人认为C#的功能比VB.net强大,或者C#更加适合.net等。其实这不是一两句话能比较清楚的。C#的确有VB无法完成的功能,但VB也有C#无法完成的功能。总的来说,对于.net开发,VB和C#没有任何差别,都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#,因为他们没有什么具体的差别。


性能上的考虑


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


学习上的难度


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


对于使用Visual Basic6或其他版本的程序员来说。VB.net的语法显然要比C#更加接近VB6,网上流传的VB与VB.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是同等看待的。所有文档和例子都是有VB和C#两份的。因此,在寻求资源方面都不用担心。互联网上的资源,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。

结束时间: 2010-9-12 15:18 裁判: shiny

正方观点 (6)

我推荐VB.Net

反方观点 (2)

我推荐C#

辩手:0 ( 加入 )
     
    辩手:0 ( 加入 )
      回复

      使用道具 举报

      发表于 2010-6-17 18:18:55 | 显示全部楼层
      VB.Net到了2005也有运算符重载,无符号整数和移位运算
      回复

      使用道具 举报

      您需要登录后才可以回帖 登录 | 注册

      本版积分规则

      手机版|小黑屋|Small Basic中文站-快乐编程 ( 闽ICP备09051788号 |

      GMT+8, 2017-6-23 18:21 , Processed in 0.252650 second(s), 19 queries .

      Powered by Discuz! X3.1

      © 2001-2013 Comsenz Inc.

      快速回复 返回顶部 返回列表