荔园在线

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

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


发信人: baty (新一代懒人), 信区: DotNET
标  题: VB.NET和C#
发信站: 荔园晨风BBS站 (Sat Sep 22 23:51:08 2001), 转信

这是一个VB程序员写的文章,不过个人还是喜欢C#多些,而且C#是专门为
.NET度身定做的一种标准语言。希望读者根据自己的情况选取适当的语言。

-----------------------------------------------------------
面向对象的编程在.NET世界是不可避免的。你该选择哪一种语言呢?

随着VB.NET的推出,微软已经赋予了VB程序员多年来长期要求的所有特性,即一种
真正的面向对象的编程语言。你也许听到过VB.NET改动之大甚至你都无法认识的嗡
嗡讨论声。确实,他们不得不去掉语言中的一些次要的东西,并且改变一些对象、
属性和方法。但这对大多数VB程序员来说不是一个大的负担。事实上,我认为当你
开始经常使用后,你会发现它比以前的VB版本更简单、直观。因为对VB.NET将存在
着学习曲线,你也许会对C#好奇而想知道是否该放弃VB。
假如你现在是一位VB程序员,特别是有多年的编程经验,你完全不必转到另一种编
程语言象C#、Delphi。虽然它们有一些细小的差别,你会发现VB的核心语言仍然是
相同的。主要的变化是你在VB.NET中使用的对象、属性和方法。你必须学习这些新
东西而不管选择使用哪一种.NET语言。
现在,假如你从古老的DOS岁月就一直使用BASIC,那么你会受到一些打击,因为他
们已经去掉了GoSub, While/Wend,Let a=b和其它大量的陈旧命令。但是微软一
直在警告你任何地方都不要使用这些非结构化的声明。
VB.NET的优点
VB.NET有着C#不具备的特性。例如,IsDBNull()函数在VB.NET存在,而C#没有。
VB.NET有求幂功能并能使用Redim重新分配数组,这些在C#中也不可能。C#对关键
词和变量是大小写敏感的,大部分VB程序员不习惯于这点。而这会浪费时间除非你
在输入时确实保持了一致。个人来说,我喜欢VB中使用If. . .End If和Do. . .
Loop,反对C#中使用curly braces。我发现很难跟踪这些braces。Select Case声
明比C#更容易、简洁。在C#中,你必须始终使用break语句来跳出select声明。在
VB中,你能用Case 1 to 50;在C#中你必须编写50个单独的case声明来实现此功能

当你正使用VB的OOP(面向对象编程)特性时,你会发现象Inherits,
MustInherit,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() {
...
}
}

假如你不仔细查看,也许会忽略这个事实,C#版本中的Employee类是从Person类继
承的(用Employee : Person语法表示)。

升级进程会有多糟呢?

从VB6到VB.NET的迁移不会没有挑战,但是现在你可以做些事来准备。首先,使用
类,COM 组件,和n-tier(n-层)开发技术。假如你使用这些编程结构,到转向.
NET时就会有最容易的迁移路径。有一些编程风格不会如此容易的迁移——例如,
基于非0的数组,隐式变量(没有使用Option Explicit)和Jet或RDO。你不得不做
大量的重写工作来转换这些类型的应用。

在你已存在的应用中继续使用VB6,在新的开发时采用VB.NET,没有什么错。这两
种在一台机器上相处融洽。事实上,这成了一个通用方法。

C#介绍

微软创建C#时怀有几个目的。首先,他们需要一个Java的替代品。随着他们和这种
语言的持续法庭斗争,以及大多数人认为Java是Sun的产品,微软需要自己的类似
Java的语言,并且能很明显看出是他们自己的。另外,微软想要一种新的、干净的
语言,没有用户仍然需要维持的任何遗留代码。结局就是一种干净的语言,没有大
量的包袱。

最愿意使用C#语言的是Java,C和 C++ 开发人员。这些开发人员已经熟悉了语言的
结构和大小写敏感。他们也需要对待到.NET的学习曲线,因此他们不会比VB程序员
有太多的优势。

C#的优点

我无可否认的是一个VB支持者,但是C#确实有一些优点。例如,多行注释的能力,
不需要重复注释字符是相当灵活的。C#也能做前和后的自增、自减,例如:

intValue--
intValue-

上述代码的第一行使变量intValue增加1。第二行使变量减少1。相对于VB版本更长
的intValue += 1,这是一种漂亮的速记。

C#的另一个好处是当前在beta版中比VB.NET有更多的示例程序。在未来发行时很可
能发生变化。

虽然商业应用软件中不是经常使用,C#允许你使用指针。然而指针能导致许多问题
,你需要它们也许有一段时间。在这种场合下,C#比VB有一点微小的优势。然而在
我的编程生涯中,很少用到指针。

C#能使用定义在.NET 运行时的Unsigned数据类型。再一次,商业应用软件中对这
点的需要并不经常,但是它是C#比VB.NET有对.NET运行时引擎更多访问能力的一个
方面。

迁移之路

VB6通向VB.NET的路不会容易,但我认为你值得花时间学习这种新语言。同时,我
推荐你开始学习OOP风格的编程,在.NET世界的编程中肯定需要。无论你选择哪一
种语言,你将发现.NET平台对创建桌面,Internet,intranet和分布式应用是极其
好的。

--
     来 人
      Welcome to Sunrise!

             我总有一种想为你而死的冲动

                          因为我不知如何才能把你打动

※ 修改:·baty 於 Sep 22 23:55:09 修改本文·[FROM: 192.168.1.201]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.201]


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

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