VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - VB.NET:给Visual Basic带来革命
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:9612, 日期:2002-04-07
VB.NET:给Visual Basic带来革命

作者:不详  

--------------------------------------------------------------------------------


  微软公司推出的.NET平台完全改变了Visual Basic的编程世界。.NET战略迈出的首要一步就是发布了最新的软件开发包:Visual Studio.NET。开发团体对新一门编程语言C#议论纷纷,但在这纷繁的变化之中人们却忽略了一个更为重要的新闻:Visual Basic发生了颠覆性的重大变化,这就是本文要探讨的宗旨,我们要引领读者领略一下VB.NET到底给我们带来了什么。

  .NET世界内的每一种编程语言都必须和CLR(公共语言运行时:Common Language Runtime)打交道。你完全可以把这个新事物看成类似以往必须分派的VB运行时,当然,和老家伙相比,新玩意儿的规模更大,有些很酷的小东西也取消了。为了应付公共语言运行时,VB也必须随之有所改变,最重要的就是支持真正的面向对象编程。是的,你早就经常用VB处理各种对象了,某些VB开发人员甚至反复地在IDE内“实现”面向对象的VB程序,但是,VB6确实没有达到支持面向对象语言所应该达到的合理程度。

  这可不是说VB开发人员就不知道面向对象的好。但是从某种意义上说,VB程序员因为VB所限多少悬在了面向对象和传统编程的半空中。结果呢,大多数VB程序员不过是典型的过程编程的实践者,对面向对象技术,比如COM可以说很少体验。这一事实令微软公司必须面临抉择:程序员的思想共享可是技术领域最有价值的无形资产啊!最激进的变革无非是让.NET把VB扔到一边,让竞争对手如Java之类紧紧俘获程序员的心灵。好在茫然之际曙光初现:VB.NET来了。

  语法和语言变了样

  学习编程语言的语法通常比学习围绕这一语言的技术行话要容易得多。超出编程语言的领域再看,这一事实对Web编程和面向对象等更为大型的软件工程也同样有效。在向面向对象技术进军途中最令人畏惧的任务就是理解一大堆陌生的面向对象术语,比如继承和重载等等。这些术语(比如类)往往具有不同的含义。

  类

  类是面向对象技术的核心概念。当然,目前的VB语言也支持类技术,但是,对VB.NET而言情况就完全不同了。对初学者来说,类开始和终止于某个代码块而非一个具体的文件。Public Class MyClass….End Class定义了一个类;这样只在一个文件里就可以定义多个类。其次,你再也不能对类进行“SET”操作;实际上,你干脆把关键词SET忘了吧!对属性的读取和赋值也取消了;它们都用一种更为智能的语法代替了。最重要的是,你必须把自己定义的类设想为物理实体的虚拟代表。CLR在对象分配时表现如此之好动作如此之快以至于创建对象的代价几乎为0。在VB编程中,开发人员创建一个很棒的对象往往勉为其难,这可是个很大的缺陷,原因就在于整个过程拖拉的可以,现在这些问题都被解决了。

  重载

  开发人员经常为满足特定需要而编写一块代码。随着开发工作的继续,这段代码往往会逐渐包括越来越多的功能。这种代码膨胀现象有时会让处理参数的数目多得惊人。到这个地步,你就必须增加相当可观的逻辑针对这些传递过来的参数做出执行决策,否则你就可能不得不创建更多的函数而它们要做的事情却几乎差不多。这种情况存在大量的问题,这些令人头痛的问题正好可以通过方法重载技术来解决。

  方法重载技术可以让程序员编写多个名字一样的方法,但这些方法的传递参数却不同。在方法被调用的时候,参数列表会被自动计算然后调用正确的方法。在这种情况下,你就不必编写任何判断逻辑来处理需要执行的程序代码了。

  构造

  当类被创建或者破坏时需要调用某些特殊的函数。你可能在VB6中已经熟悉这些函数了,在VB6中它们就是Class_Initialize和Class_Terminate程序。在这些程序中增加逻辑也是可能的,而增加参数则绝不被允许。在创建类的时候有条件准备的资源还不可用。而在VB.NET环境下,这些公共方法,也就是类构造器和破坏器,其处理能力被大大扩展了。最有用的变化就是可以在New方法中增加参数,而后者正是代替Class_Initialize的方法。这一特性被称作“参数化构造器”,可以令类的内部资源分配效率更高。你可以用这种技术重载New方法而获得令人难以置信的灵活性。

  继承

  继承可是一个很大的话题;要全面地讨论这个主题非得用整本书来阐述都还不够。就本文而言,我们只是大致地举例说明。

  假设你在构建一个支出报告应用程序。按照真实世界的比照,你需要建立一些类来表示系统中的物理实体。就拿一个单个开支记录来说吧,某笔开支拥有很多属性,所以你可能需要创建一个类,比如名字就叫expense。现在让我们假设有3种人要用到该应用程序,他们是职员、经理和主管。对这些不同的组别来说,很有可能他们用来处理这些开支报告的规则都不同。不过,即便如此,基本的属性还是不会改变的。比如,报告的日期就是如此,谁看都一样,开支总额也是不会变动的。所以这种情况就要用到继承概念了,我们可以创建一种expense类并把它当作所谓的“基类”,这个基类具有一些基本的属性和方法。

  我们在创建ExpenseEmployee、ExpenseManager和ExpenseExecutive这三种类的时候就要从以上的基类来继承了。虽然这是一个相当简单的继承示例,但这个例子足以说明继承概念的核心含义。你还可以在基类中增加代码防止其他开发人员在继承类中处理基类成员,你甚至可以让你的基类不得被继承。

  小结

  且不管人家怎么评论,Visual Basic始终是一种革命性的编程语言,它把困难的编程任务变得容易多了,这就很不简单啊!不要以为这门语言的创新会丧失其显著的易用性,Visual Basic只会变得更好!