`
purpen
  • 浏览: 796791 次
  • 性别: 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。

分享到:
评论

相关推荐

    VB.NET中如何播放音频视频

    在VB.NET中实现音频和视频播放功能是常见的需求之一。根据提供的信息,本文将详细介绍四种不同的方法来实现在VB.NET应用程序中播放音频和视频的功能。 #### 方法一:使用Microsoft.DirectX.AudioVideoPlayback组件 ...

    VB.NET Remoting 技术手册

    VB.NET Remoting与Web Services、WCF(Windows Communication Foundation)等其他分布式技术相比,各有优缺点。Remoting提供更低级别的控制和更高的性能,但其API相对复杂,不适合大规模的跨平台项目。 总之,VB...

    VB.net只许一个实例运行.doc

    VB.net 单实例运行机制 VB.net 中单实例运行机制是指在同一个系统中只允许一个实例的程序运行,防止多个相同的程序实例同时运行。这种机制有多种实现方式,下面将介绍两种常见的实现方法。 方法一:通过进程名判断...

    ASP.net与VB.net从入门到精通.pdf

    本书“ASP.NET与VB.NET从入门到精通”旨在帮助初学者和有经验的开发者深入理解这两者,并掌握其核心概念和实践技巧。 ASP.NET是.NET框架的一部分,它提供了一个强大的服务器端平台,用于创建交互式的、数据驱动的...

    开发人员指南VB.NET控件应用编程实例PDF,有很好的参考价值。

    对于初学者和有经验的开发者来说,VB.NET提供了丰富的工具和库,使得创建用户界面、数据库连接、网络通信等功能变得简单易行。 本书的核心内容可能包括以下几个方面: 1. **控件基础知识**:介绍VB.NET中的基本...

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

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

    Excel导入导出 for VB.NET

    在VB.NET编程环境中,处理Excel数据的导入与导出是一项常见的任务。这涉及到与Microsoft Office Interop库的交互,或者使用第三方库来实现无依赖的解决方案。以下是一些关于"Excel导入导出 for VB.NET"的重要知识点...

    [VB.Net] 多语言文字加密器源码

    【VB.Net多语言文字加密器源码】是一个专为Visual Studio 2010设计的项目,基于VB.NET Framework 3.5版本。这个工具的主要功能是对文本...同时,了解和比较不同加密算法的优缺点,有助于在实际应用中做出更合适的选择。

    VB.NET商品销售管理信息系统

    同时对当前比较具有代表性的微软公司开发工具VB.NET 2003和功能强大的数据库开发工具SQL Server 2000以及数据库连接技术有了一定的了解。这对于未来从事相关领域工作的人员来说是非常宝贵的经验和知识积累。

    VB.NET 反射类属性名称

    在VB.NET编程中,反射是一种强大的机制,它允许运行时检查和操作程序集、类型、方法、属性等元数据。这个“VB.NET 反射类属性名称”主题聚焦于如何利用反射来获取或设置类中特定属性的值,尤其是当我们只知道属性的...

    《VB.NET程序设计语言》微软院校IT课程.ppt

    《VB.NET程序设计语言》微软院校IT课程涵盖了VB.NET编程的基础到高级概念,旨在帮助学生掌握使用VB.NET进行软件开发的技能。以下是课程的主要知识点: 1. **概述**:这部分通常介绍VB.NET语言的基本背景、特点和...

    VB源码vb.net聊天通信软件开发(论文+源代码+开题报告+答辩PPT)

    通过上述分析可以看出,“VB源码vb.net聊天通信软件开发(论文+源代码+开题报告+答辩PPT)”这个资源包非常全面地涵盖了从理论研究到实践操作各个环节所需的知识点和材料,对于正在从事或者准备进入该领域的学习者来...

    《VB 2005 & .NET 3.0高级编程(第5版)》

    《VB 2005 & .NET 3.0高级编程(第5版)》这本书是面向已经有一定基础的VB开发者,旨在深入探讨VB 2005与.NET Framework 3.0平台的高级特性。VB 2005是Visual Basic的第9个主要版本,它在.NET Framework 2.0的基础上...

    vb.net 处理Excel

    在VB.NET中处理Excel是一项常见的任务,特别是在数据导入导出、数据分析或自动化报表生成的场景下。VB.NET提供了多种方式来操作Excel,包括使用Microsoft Office Interop组件、使用第三方库如NPOI,或者利用Open XML...

    Visual Basic.NET 高级程序员指南

    理解这两种框架的优缺点,并能灵活运用,可以提升应用程序的视觉效果和交互性。 5. **网络编程**:VB.NET提供了一系列类库用于网络通信,如Socket、TcpClient/TcpListener等,使得开发者可以构建网络服务器和客户端...

    vb.net聊天通信软件开发(设计说明书+源代码+调研报告+项目PPT).zip

    1. 竞品分析:对比分析已有聊天软件的优缺点,如微信、QQ等,了解其核心功能和技术特点。 2. 技术趋势:研究实时通信技术的发展,如WebRTC、WebSocket等,评估是否应用于项目。 3. 安全性考量:探讨加密算法的应用,...

    Matlab与VB.NET混合编程中数据存储方式的研究.pdf

    Matlab提供了强大的数学计算功能和丰富的函数库,而***则以其简易性和强大的面向对象编程能力而备受青睐。在进行混合编程时,数据存储方式的选择是一个重要问题,直接影响到程序的运行效率和数据的安全性。 在...

    毕业论文设计-IT计算机-vb.net聊天通信软件开发(论文+源代码+报告+答辩PPT).zip

    VB.NET是微软公司推出的.NET框架下的一种面向对象的编程语言,它以其直观的语法和强大的功能深受开发者喜爱,尤其适合开发Windows桌面应用程序。 在设计这款聊天软件时,首先需要对网络通信的基本原理进行深入理解...

    .NEt 日程管理系统

    ASP.NET框架包含了多种Web应用模型,如Web Forms、MVC和Web Pages,它们各有优缺点,适用于不同的开发场景。在本系统中,可能采用了Web Forms模型,因为它对初学者友好,提供了丰富的控件和事件驱动编程模式。开发者...

Global site tag (gtag.js) - Google Analytics