首页 > 编程 > .NET > 正文

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

2024-07-10 13:02:05
字体:
来源:转载
供稿:网友


面向对象的程序设计不可避免的将会出现在.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的编程世界中经常使用到它。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表