选择VB.Net还是C#(转)

面向对象的程序设计不可避免的将会出现在.Net的世界里。现在问题是,我们要选择哪一种语言呢?

(飞刀前言:如果您是VB程序员,那么本文将会为您介绍VB.Net与以前版本VB的区别,如果您是C#、C++,C,Java程序员,本文最好不要看,此文的作者的某些观点会让我们这些程序员吐血)

在VB.Net中,微软给与了VB程序员们多年来梦寐以求的东东,也就是真正的面向对象的程序设计语言。也许您已经听说了,VB.Net与他的前身VB有很大的不同,甚至您都不会认识它了。确实,他们不得不删除了一些细小的东东,同时改变了一些对象,属性以及方法,但是这些对一个VB程序员来说都不是什么大问题。实际上,我认为一旦您已经能够熟练的使用VB.Net,您会发现它比以前的VB版本更加简单和直观。因为在学习VB.Net的路上要走不少的弯路,所以我想您可能会对C#产生好奇心,盘算着是否需要放弃VB。
 

如果您现在已经是一个VB程序员了,而且已经有一定时间了,那么您并不需要去选择其它的语言,比如C#或Delphi。你会发现VB尽管已经的改变了不少,但是它的核心依在。最主要的变化存在于使用VB.Net中的对象、属性以及方法。不论您学习哪样.Net程序,这些都是需要重新学习的。

如果您从Dos时代便开始使用BASIC语言,那么VB.Net将会让你承受不小的打击。VB.Net已经去掉了GoSub,While/Wend以及其它一些陈旧的语句。但是微软已经发出警告,在任何情况下都不要使用非结构性语句。

VB.Net 的优势
 

VB.Net 拥有features,而C#没有。比如,IsDBNull()函数就只存在于VB.Net,C#中是不没有的。

VB.Net拥有求幂函数以及重新分配数组空间的Redim ,这些C#中也没有。C#对大小写很敏感,而大多数的VB程序并不习惯于区分大小写。以我个人来说,我喜欢VB中的If ....End If 以及Do ...Loop的方式,而不太喜欢C#中{}符号。Select Case语句也比C#中的switch语句更加简单和紧凑。在C#中,你不得不使用break语句去中止查询结构。在VB中,你能使用Case 1 to 50,但是在C#中你不得不使用50个独立的case语句来完成。
 

当你在使用VB中面象对象的特性时,你会发现Inherits,MoustInherit,NotInheritable,Overridable以及其它一些关键字。在C#中,这样的特性您不得不调用一些模糊的关键字和语法,比如在VB.Net中,继承一个类,你可以这样写:

Public Class Person
  ...
End Class
Public Class Employee
  Inherits Person
  ...
End Class

如果使用C#就必须:

public class Person
{
  public Person() {     
     ...
  }
}
public class Employee : Person
{
    public Employee() {
     ...
    }
}

如果你不仔细,您可能会忘记使用Employee : Person语法来继承Person类。

(飞刀注:此作者为典型的VB程序员,呵呵,没有想到飞刀认为的C#的优点,全被此作者否定。在这些上面飞刀的个人观点与这位作者不同,其实只要大家习惯,就会发现C#是多么的好用。如果大家是从VB转到C#,那么肯定会有一些不适应,但是也没有到全盘否定的地步,呵呵,习惯就好)

升级至VB.Net有多大困难?

从VB6.0移植至VB.Net,并非没有挑战必。但是这里有些事情,我们必须事先准备好:第一,使用类,COM组件,以及递行排列的开发技术。如果您使用这些程序开发构造,您的移植工作将会很简单。这里有些程序样式并不是很容易移植的,比如非零数组,隐含变量(即没有使用Option Explicit),以及Jet或者RDO。

介绍C#

微软在创建C#时有两种思想:第一,需要一个Java的竞争者,微软需要一个绝对属于本公司的类似于Java的语言。另外就是,微软希望有一个全新的,整洁的语言。

C#适合于那些Java、C以及C++程序员,这些程序员已经很习惯于这种语言的结构以及对大小写敏感的特性。他们也不得不重头学习.Net的类库,因此在这时们并不比VB程序员有多少优势。
 

C#的优势

我无可否认,是一名VB的支持者,但是C#确实存在一些优势,比如多行注释,以及一些代码的简写:

intValue--
intValue-

其它一些C#的优点就是在Beta版文档中,C#的资料比VB多。

尽管不会经常用于编写商业应用程序,但是C#还是支持指针。在这个方面C#确实比VB有着一些小小的优势。但是,在我的程序中,我很少使用指针。

(飞刀注:可能是我翻译有错误,pointer是否表示指针,如果是,这位作者已经犯下一个天大的错误,那就是C#中并不支持指针,而且不知道这位作者是否使用过VC#,怎么能说C#不经常编写商业应用程序?)

C#拥有使用Unsigned数据类型的能力,同样的,在商业应用程序中它的使用并不广泛。
 

移植之路

从VB6.移植至VB.Net的道路并不平坦,但是我想对于想学好一门新程序语言的您来说,这份投资是值得的。在学习中,我推荐您学习面像对象的程序方式。你会经常在.Net的编程世界中经常使用到它。

时间: 2024-10-27 12:26:38

选择VB.Net还是C#(转)的相关文章

选择 VB.NET 还是 C# ?

这个话题已经被争论很久了, 从国外到国内, 从学校到企业. 当然市场没有限制我们只能选择一种语言, 所以我们可以学学这个, 同时也学学那个, 但如果你想我给出一个单一答案: 我会选择 "能让我赚最多钱(或者保守点说, 能够保证我继续活着)" 的语言. 不要误解这句话的意思, 它真正的意思是重视实际, 有些东西当它成为真正的理想时, 很可能我们已经不再使用它了. 人的生命是有限的, 而世界是不断变化的, 任何东西都有可能诞生, 也有可能消失, 关键是我们的生命和哪些段落重迭了. 例如:

选择VB.NET还是C#

关于VB.NET又怎么样呢?   在很多真正的开发者看来,VB像玩具语言似的,从某种角度看,也确实是这样的.迄今为止,VB远比我们所知道的那两三个弱点更多.不过VB.NET确实是和C#同样强大的.NET开发语言.有些人说它更强大. VB.NET有内置的(插入特点)支持:而C#没有 "VB.NET内置了很多东西像字符串操作(Mid, InStr, 等等)和类型转换(例如CInt).C#缺乏这些内置的支持,所以,我所需要的东西,在C#中很难找到. 如果你抓住这些你应该Mid 或者 CInt功能不放,

百万程序员的苦恼-选择VB.NET还是C#

程序|程序员 在过去的一年中,互联网上的各大讨论区或者电子邮件的讨论列表都对微软的VB.NET以及C#的各种优越性做了探讨.这些讨论围绕的主要问题就是,我应该先学哪一个,VB.NET还是C#?       我写这篇文章的目的就是想帮您解决这个问题.我并不是想动摇你倾向哪一种语言而是想解决一些大家在基本问题上的疑惑,以便大家能够作出自己的决定,选择一种自己觉得用起来最舒适的语言.我将尽量避免讨论一些语法上的模棱两可的话,就像"C#的括弧太多了,""VB.NET句子太冗长,&qu

.NET语言的选择

.NET语言的选择 导 读:每个组织迁移到.NET将选择采用哪种.NET语言.微软提供了四种语言:C#, VB.NET, 可管理的C++和 JScript.本文简要的讨论了我们关于这些语言和哪种语言将被使用的看法. 原文出处:http://www.dotnetdan.com/articles/misc/LanguageChoice.htm 每个组织迁移到.NET将选择采用哪种.NET语言.微软提供了四种语言:C#, VB.NET, 可管理的C++和 JScript.本文简要的讨论了我们关于这

为什么选择VB.NET?(转贴)

对于.NET,人们比WEB应用程序投入了更大的关注.VB第一次承诺,可以额外提供对控制台程序以及Windows服务的支持.因为这一点,Rob Macdonald回过头来问:用VB.NET究竟可以做什么?换一句话说,VB.NET是否适合你?目前为止,许多软件公司(包括Microsoft)都将他们的产品压缩在一个安装包里提供给开发人员.我们就一直忍受着那些令人头痛的配置和版本匹配的问题.我们为了产品在真实环境中的运行绞尽脑汁.为了测试,我们还要花费大量的时间来设置一个干净的机器.接下来的几年中,绝大

.NET语言的选择 [特别推荐] (转贴)

导 读:每个组织迁移到.NET将选择采用哪种.NET语言.微软提供了四种语言:C#, VB.NET, 可管理的C++和 JScript.本文简要的讨论了我们关于这些语言和哪种语言将被使用的看法. --------------------------------------------------------------------------------翻译整理:51dotnet.com(高飞家族) 原文出处:http://www.dotnetdan.com/articles/misc/Lang

c#-请教C#转vb.net的问题,伤脑筋

问题描述 请教C#转vb.net的问题,伤脑筋 那位大神给我转换一下,我自己弄了几天了,但是没有办法,特别是搞不懂例子里面SKinForm里面的Init函数有什么用,是C#默认调用的吗?因为我在整个程序里面没有看到哪里调用了. 请求大神帮我转换一下整个文件.拜谢了.小弟没有分了,如果转换好了,冲二十元话费.说到做到.调试成功,给支付宝或电话号码 解决方案 用C#写好程序,编译,用ILSpy反编译,语言下拉选择VB,就可以得到转换的代码. 解决方案二: http://download.csdn.n

在Oracle上构建 .NET 应用程序

oracle|程序 了解构建使用 Oracle 数据库的 .NET 应用程序所涉及到的基本但不可或缺的过程 本文涉及的下载 · 示例代码 · Oracle Data Provider for .NET (ODP.NET) 随着 Microsoft 的 .NET 框架的逐渐流行,许多开发人员迫切想了解关于将 .NET 应用程序与 Oracle 集成的最好的方式的信息 - 不仅在基本的连通性方面,还包括与使用 Visual Studio.NET (VS.NET) 进行有效的应用程序开发的关系. 在本

在Oracle数据库上构建.NET应用程序

oracle|程序|数据|数据库 随着 Microsoft 的 .NET 框架的逐渐流行,许多开发人员迫切想了解关于将 .NET 应用程序与 Oracle 集成的最好的方式的信息 - 不仅在基本的连通性方面,还包括与使用 Visual Studio.NET (VS.NET) 进行有效的应用程序开发的关系. 在本文中,我将说明构建使用 Oracle 数据库的 .NET 应用程序所涉及到的基本但不可或缺的过程,包括: 如何添加工程引用,以在您的 .NET 工程中支持 Oracle 类 如何创建 Or