荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Jobs (温少), 信区: Visual
标  题: Re: [转载]选择VB.Net还是C#
发信站: 荔园晨风BBS站 (Wed Jun 27 16:29:05 2001), 转信


    我本来是VB程序员,使用过VB 5、VB 6和VB .NET,现在使用C#。可以说对VB和
C#都不陌生。这篇文章的作者也许并不了解.NET,所谓的IsDBNull和Redim,在.NET
中的VB .NET已经和VB 6不大一样了。其实IsDBNull是System.Convert的一个静态方法
成员而已。在.NET中,Array是一个类,更改数组的上限,也是Array对象提供的功能,
在.NET的每门语言都应该拥有的功能。当然,在VB .NET中,实现的语法不一样而已,
其实在.NET中,各门语言主要功能的差异都不是特别大,都是基于IL语言的基础上实现
各自语言的一些特性。Managed C++、C#、VB .NET、JScript .NET等,这几门语言中,
Managed C++是为广大VC程序员设计的,但Managed C++的语法有些别扭。C#是.NET的
原生语言,它集成了Java、VB和C++等流行编程语言的一些优点,例如类似Java的
NameSpace、Interface等,通过一些特别的方式实现C++指针的功能,其中包括最常用的
函数指针,在C#中使用delegate取代之,当然也可以在C#中通过unsafe关键字来使用
指针。delegate本身也是一个class--,是类型安全的。C#中包括了VB中的一些受欢迎的
特性,其中包括Property。C#中包括一个特有的Indexer,通过Property和indexer,可以
使代码简洁优美。VB .NET在一定程度上保留了VB的“神秘”机制从而使语言在某些方面
简单易用。包括通过一些有VB特色的方式来时下某些类的功能,就像Paul D. Sheriff所
说的IsDBNull,ReDim,语言本身的不区分大小写。JScript .NET,它和C#、VB .NET是
目前ASP .NET支持的三种语言,JScript不支持interface。

    各种语言有各自的特色,但是他们都是IL语言的部分实现,他们使用公共的类库,
他们有很多共通之处。Managed C++是向后兼容的一个C++ .NET语言版本,适合已经
对C++很熟悉的编程人员,方便他们现有应用程序向.NET迁移。C#是最推荐大家学习的,
因为它是一门专门为.NET设计的语言,可以说C#要比Java优秀。VB .NET也是一个很有
特色的.NET编程语言,应该会有很多程序员会选择VB .NET。JScript占的比例应该会
少一些。


【 在 Junhot (倚浩) 的大作中提到: 】
: 编译:http://www.aspcn.com 飞刀
: 原文http://www.aspadvisor.com  Paul D. Sheriff
: 选择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的编程世界中经常使用到它。
: (飞刀总结:因为作者是一位优秀的VB程序,可能对C#并不是十分了解,对于C#他
: 基本是否定的,他所说的有些观点,飞刀可以肯定地告诉大家,那是错误的,但是
: 作者对于VB.Net的分析还是非常有用处的)


--

   好好学习,天天向上!!!!

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.52.210]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店