`
izuoyan
  • 浏览: 9219614 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Visual Basic.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。

注:本文节选自http://zhidao.baidu.com/question/11273829.html

分享到:
评论

相关推荐

    Visual C# .NET 编程经典——从VB6到Visual C# .NET 快速进阶

    《Visual C# .NET 编程经典——从VB6到Visual C# .NET 快速进阶》这本书是为那些已经熟悉Visual Basic 6 (VB6)并希望过渡到使用Visual C# .NET进行开发的程序员量身打造的。本书旨在帮助读者掌握C#语言的基础和高级...

    Network programming in .NET: C# & Visual Basic .NET

    ### .NET网络编程:C#与Visual Basic .NET #### 书籍概述 《.NET网络编程:C#与Visual Basic .NET》是一本专为软件设计师和开发人员编写的指南,旨在提供工具和技术来设计和实现面向网络的应用程序。本书不仅涵盖了...

    Visual C++.net与Visual C++6.0使用之差别

    Visual Studio .NET集成了多种开发工具,如Visual C++、Visual Basic、Visual C#等,并提供了多样化的配置方案。对于专注于C++开发的用户而言,推荐选择“Visual C++ Developer”配置方案,以充分利用Visual C++.NET...

    精通Visual C++ .NET 2003窗口程序设计-1

    随着.NET平台的推出,微软也发布了新版的窗口程序集成开发环境——Visual Studio .NET,且增加了Visual C++ .NET、C#、Visual Basic .NET、J# 等新语言。但对于在Visual Studio .NET里使用C++语言的窗口程序设计来说...

    Visual Basic.NET(VB 7.0)讲座

    Visual Basic.NET(VB 7.0)是一种革命性的编程语言,它是Microsoft为了适应.NET框架而推出的全新版本。VB 7.0与之前的VB 6.0有着显著的区别,不再是传统意义上的Basic语言,而是转变成了一种完全面向对象的语言,与...

    Visual Studio .NET开发环境使用指南

    Visual Studio .NET是微软公司推出的面向对象的、组件化的、集成的开发平台,支持多种编程语言,如C#、Visual Basic .NET、C++、F#等。它集成了项目管理、代码编辑、调试、版本控制、测试等多种功能,为开发者提供了...

    ASP.NET4入门经典——涵盖C#和VB.NET(第6版)

    - **VB.NET**:VB.NET是从Visual Basic语言发展而来的一种面向对象的语言,它保留了VB的简单性和易用性,同时引入了许多现代编程概念和技术,如泛型、XML支持等。 #### ASP.NET4的关键特性 - **改进的安全性**:...

    ASP.NET4入门经典——涵盖C#和VB.NET(第6版) 源码

    VB.NET(Visual Basic .NET)则是.NET Framework另一种重要的编程语言,它继承了Visual Basic的传统,同时加入了现代编程语言的功能。VB.NET在ASP.NET 4中的应用同样广泛,允许开发者以更加直观的方式来编写Web应用...

    Visual Basic 9.0前瞻——语言集成的查询支持和动态编程

    《Visual Basic 9.0前瞻——语言集成的查询支持和动态编程》 Visual Basic 9.0 是微软在 .NET Framework 下对 Visual Basic 进行的一次重大升级,旨在提升开发人员的生产力和代码的可读性。这次更新带来了两个核心...

    ASP.NET毕业设计——ASP+ACCESS网上远程教育网毕业设计(开题报告+源代码+论文+答辩).zip

    1. **编译式语言支持**:ASP.NET支持多种.NET兼容的语言,如C#、VB.NET等,编译后的代码运行效率高,安全性强。 2. **页面生命周期管理**:ASP.NET页面有自己的生命周期,包括初始化、加载、回发和卸载等阶段,这为...

    vb.net ppt

    Visual Studio .NET可视化应用程序开发工具组是.NET技术的开发平台,Visual Basic .NET(以后简称VB.NET)是该工具组中的一个重要成员,其中还包括Visual C++ .NET(简称VC++ .NET)、Visual C# .NET(简称VC# .NET...

    ASP.NET源码——轻量级的Dot Net编译器支持C405和VB.NET.zip

    这个压缩包"ASP.NET源码——轻量级的Dot Net编译器支持C#405和VB.NET.zip"显然包含了与ASP.NET相关的源代码,特别是涉及到轻量级的.NET编译器,它可能是一个用于编译C# 4.0.5版本和VB.NET语言的工具或库。...

    Windows Embedded从入门到精通系列课程(18):.NET Micro Framework——用模拟器零成本体验MF开发

    它提供了一个基于.NET Framework的编程模型,使得开发者可以使用C#或Visual Basic等高级语言来编写代码,而不是传统的汇编语言或C/C++。NETMF的核心组件包括运行时环境、类库、设备驱动模型和一个可扩展的硬件抽象层...

    Visual Basic.

    如压缩包内的"Visual Basic.NET入门.pdf",可能详细介绍了VB.NET的基础知识和实战技巧,对于初学者来说是一份很好的参考资料。"readme.txt"可能是关于压缩包的说明或使用指南,而"说明.htm"可能包含了更具体的VB.NET...

    ArcObjects GIS应用开发——基于C#.NET(第一版).pdf

    - 开发者可以选择Visual Studio作为集成开发环境(IDE),利用C#.NET的面向对象特性进行开发。 - .NET Framework为开发者提供了丰富的类库和强大的运行时环境,支持快速开发和跨平台执行。 - 在.NET中,通过COM互...

    ASP.NET 3.5入门经典--涵盖C#和VB.NET(第5版)

    VB.NET则继承了Visual Basic的易用性,两者都与.NET Framework紧密集成,可以无缝地在ASP.NET中使用。本书将引导读者学会如何在这两种语言中编写ASP.NET代码。 4. 页面生命周期与事件处理:了解ASP.NET页面的生命...

    Visual Basic或C#创建WS.doc

    本文旨在详细介绍如何在Microsoft Visual Studio .NET环境中,利用Visual Basic或C#语言创建一个简单的WebService,该服务用于实现华氏温度到摄氏温度的转换。 #### 一、项目准备与创建 首先,确保安装了Microsoft...

    ASP.NET源码——[聊天留言]VB.Net写的简单留言簿.zip

    1. **VB.Net语言基础**:VB.Net是Visual Basic的.NET版本,是.NET Framework的一部分。它具有简洁的语法,易于学习,尤其适合初学者。在这个留言簿项目中,VB.Net用于编写后台逻辑和控制页面流程。 2. **ASP.NET ...

Global site tag (gtag.js) - Google Analytics