惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - EA_Games

ASP.NET常用代码 - EA_Games - 博客园 Oracle中的OMS的代理服务启动不了的问题 .Net术语大全 DataGrid中的数据导入到Word和Excel_C# NHibernate 进阶 用Nhibernate怎么实现数据的添加、删除、修改简单程序 每个开发人员现在应该下载的十种必备工具 nhibernate入门系列: one-to-one映射 nhibernate入门系列: one-to-many映射 NHibernate快速指南 nhibernate入门系列: 对象持久化操作 ASP.NET 安全认证(三) -- 一点补充(或者叫优化) ASP.NET 安全认证(一) ASP.NET 安全认证(二) Winform如何存入、读取SQL SERVER数据库图片 无法运行ASP.NET Web应用程序 ASP.NET中在线用户统计 在asp.net中访问sql server - EA_Games - 博客园 ASP.NET数据库中图片存储及读取
选择VB.Net还是C#
EA_Games · 2005-10-22 · via 博客园 - EA_Games

面向对象的程序设计不可避免的将会出现在.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的分析还是非常有用处的)