面向对象的序设计不可避免的将会出现在.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 拥有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#,那么肯定会有一些不适应,但是也没有到全盘否定的地步,呵呵,习惯就好)