`
purpen
  • 浏览: 785380 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VB.net 和C.net 各有什么优缺点?

阅读更多

Visual Basic.net还是C#

——如何选择.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。

分享到:
评论

相关推荐

    Winform(VB.NET)省市区三级Combobox联动示例代码

    Winform(VB.NET)省市区三级Combobox联动示例代码 利用 DataSet 的 DataRelation BindingSource,实现三级联动。 缺点:数据全查进来。有点儿浪费。 改进:可以在BindingSource Change时触发事件查询并缓存

    OOExample继承多接口反射在多态时的比较(VB.net)

    逐一针对继承、多接口、反射以及几种混合使用中的多态比较 来显示各自的优缺点。 博客文源代码存档

    asp.net知识库

    实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP...

    VB.Net CSS Parser-开源

    这是最早的.Net CSS解析器之一。 它是使用Windows XP上的VB.Net for .Net Framework 2.0构建的。 这样做的目的是克服IE和Firefox的缺点,并开发一个CSS引擎,该引擎可以将格式应用于WinForm对象。

    DbPipeline.NET:比实体框架更好的 C# 和 VB.NET 的 OR-Mapper-开源

    我们在设计 DbPipeline.NET:trade_mark: 库时的目标是使用 100% 托管代码创建易于使用的数据库访问层类集,以便 VB.NET 和 C#.NET 程序员可以使用它来构建数据库应用程序(客户端/服务器、 Web 和 3 层),而不必...

    依据VB.NET基于WEB房地产评估系统(毕业设计源代码+论文)

    因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将介绍开发一套房地产评估系统的过程,谈谈其开发过程和所涉及到的问题及解决方法。经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC.NET开发工具,...

    依据VB.net+SQL房地产评估系统设计与实现(毕业设计源代码+论文).zip

    因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将介绍开发一套房地产评估系统的过程,谈谈其开发过程和所涉及到的问题及解决方法。经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC.NET开发工具,...

    ASP.NET的网页代码模型及生命周期

    在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点: q 可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和...

    WM_COPYDATA消息

    _COPYDATA是一种非常强大却鲜为人知的消息。当一个应用向另一个应用传送数据时,发送方只需使用调用SendMessage函数,参数是目的窗口的句柄、传递...它的缺点是灵活性不高,并且它只能用于Windows平台的单机环境下。

    遗传算法程序

    运用VB程序 将遗传算法完美的使用 可解答许多的种类函数 可视化显示计算过程 缺点在于边界取值要在代码中改 找下constraint 还是很简单的

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    IIS可以忽略对链接的虚拟目录是否存在的检测,但是,却无法检测非ASP.NET支持的文件扩展名的链接(我们固然可以在IIS中将所有类型的扩展名都映射到ASP.NET解析器,但是,如果我们有设置IIS的权限,为什么还要用性能...

    基于.NET构架的煤矿供电辅助设计系统

    针对目前煤矿供电辅助设计系统计算效率低、操作不便及不适合复杂系统设计等缺点,引入了功能模块独立、图形数据分离的设计思路。采用供电系统图绘制模块、...依托.NET平台,采用VB.NET语言构建功能层连接的驱动程序。

    Fleck-master.zip

    但是简单是有代价的:其功能并不强大,且可配置的地方太少。 fleck开源 HTML5 Websocket fleck开源 HTML5 Websocket fleck开源 HTML5 Websocket 对于简单快速的项目我会用它,如果你不需要用WebSocket发送太复杂...

    依据ASP.NET报名系统(毕业设计源代码+论文)

    采用人工管理日常业务运作的方式,和传统人工方式管理文件档案,这些管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用...

    net学习笔记及其他代码应用

    38.abstract class和interface有什么区别? 答: 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能...

    仓库管理系统(附完整说明书)

    最后对实现系统的优缺点进行了分析,提出了今后进一步完善系统的方向和方法。 设计实现的管理系统能够正确有效地完成仓库管理的日常工作,并能够根据需求进行灵活的查询;系统与数据库管理系统结合,提供了功能较为...

    混淆器dotNET_Reactor

    与代码混淆工具(Obfuscator)相比,.NET Reactor 可以完全阻止对 .NET 程序集(由 C#, VB.NET, Delphi.NET, J#, MSIL… 等语言编写)的反编译。通俗的讲,.NET Reactor 在破解者和您的 .NET 代码之间构建了强大的防...

    dotNET_Reactor

    与代码混淆工具(Obfuscator)相比,.NET Reactor 可以完全阻止对 .NET 程序集(由 C#, VB.NET, Delphi.NET, J#, MSIL… 等语言编写)的反编译。通俗的讲,.NET Reactor 在破解者和您的 .NET 代码之间构建了强大的防...

    毕业设计依据VB+SQL房地产评估系统设计(源代码+系统)

    房地产评估系统对房地产评估信息进行全面现代化...关键字:房地产评估系统,ADO,VB.NET,SQL Server 采用Microsoft SQL Server2000作为数据库后台工具。数据库能汇集各种信息以供查询、存储和检索。SQL Server2000的

    基于气压计法的矿井通风阻力测定数据处理系统的程序设计

    该数据处理系统基于Visual Studio 2010开发平台,综合应用了矿井通风阻力测定技术与理论以及vb.net中数据录入、Excel Application对象、COM自动化等技术,实现了包含自然风压计算和误差统计在内矿井通风阻力测定数据的...

Global site tag (gtag.js) - Google Analytics