频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

细说VB.NET

来源: 作者: 出处:巧巧读书 2007-07-18 进入讨论组
上一页 1 2 3 4 5 下一页 

 

Set语句消失了

  其次,Set 语句消失了。在 VB.NET 里如果你需要向变量传递一个对象引用,所需要的只是一个等号,对象被视为同其它值一样。这很酷,但也有副作用:默认属性消失了。例如,你不再能用这种方式引用一个属性:

  Text1 = "What, me worry?"

  作为替代,你必须显式地引用属性:

  Text1.Text = "What, me worry?"

  也许一眼看来不需要这种改变,但确实必须去掉默认属性。例如,假定你有一个叫objFoo的对象变量,不用Set语句,下面的语句所设置的引用就产生了歧义性:

  objFoo = Text1

  这条语句是应该设置到Text1的引用,还是以Text1的Text属性来填充objFoo?你不能确定,编译器也不能。抛弃Set语句同时要求抛弃默认属性。

  有一个改变我不喜欢:你不再能在不同的作用域里声明Property Get和Property Set过程。注意 VB.NET 没有 Property Let 语句:对象和数值都用 Property Set。这意味着你不能用一个 Friend Property Let 过程来对应一个 Public Property Get。用VB建立组件时可能会有麻烦。许多组件开发者创建 Friend Property Set 过程以使他们的应用程序能改变一个值,但提供 Public Property Get 过程以使他们的客户程序能取回值。我希望我能为这个改变找到一个合适的理由,可是我找不到。

  Microsoft说它力图使语言保持清晰并使之现代化—大部分情况下它做得不错—但这个作用域问题和其它几个问题令人感到困惑。例如,While...Wend 很早以前就应该消失了,因为 Do...Loop 完成同样的功能。然而,Microsoft 不仅没能去掉 While...Wend,还把它改成了 While...End While 来给自己找了更多的麻烦。真奇怪!

  我最不喜欢的改变是:Microsoft改变了你已经使用的数据类型含义。在 .NET 里,Integer 现在是 32 位,而 Long 变成了 64 位。我心存恐惧地想:开发者 (包括我自己) 会多么频繁地使用错误的变量啊。那个API到底是接受一个16位的 Integer还是32位的?老天!我希望Microsoft重新考虑这个决定并使用新的变量类型,比如Int32和Long64。无论迁移到 VB.NET的移植工具是多么的好,它也不能改变开发者的记忆。为什么要逼着我们再学一遍普通的数据类型呢?

  最后,最需要的一个改变是:VB.NET引入了 Option Strict 关键字,你可以使用它来代替 Option Explicit。Option Strict 结束了万恶的类型强制(tm),通过它VB乐于让你把一个数值赋值给一个字符串,然后像犯罪一样做另一个操作。设置 Option Strict 告诉 Visual Basic.NET 不要为你做任何类型强制。注意 VB.NET 并不是彻底的控制狂,它允许类型向下转换,但不允许向上。例如,不使用像 sngvariable = CSng(dblvariable) 这样的语句进行显式类型转换,你就不能把声明为 Single 的变量赋值给声明为 Double 的变量。因为这有丢失数据的风险。然而,你能不使用显式类型转换就把声明为 Double 的变量赋值给声明为 Single 的变量,因为这并没有丢失数据的危险。使用 Option Strict 能帮助开发者减少很多类型错误,包括那些很难调错的。但有一个附加的缺陷:在工程里使用了 Option Strict 后,就不能进行 后编联了。

表单和新IDE面孔
  Visual Basic.NET 的面向对象功能很伟大,但第一次启动 VB.NET 时还注意不到它。可能你注意到的第一件事是它的 IDE。IDE看起来可能很熟悉,建立VS.NET IDE的团队以前的工作是开发VB的IDE,对IDE的增强借鉴了VB IDE的经验。

  同时,IDE的改变远比外表显示的深刻。所有.NET语言使用相同的IDE,并且IDE中的新工具功能强大又易于理解。你能把任何一个设计窗口设置为自动隐藏 (就像你能自动隐藏Windows任务栏那样),这样就大大地减少了混乱。主工作区域是一系列选项卡,这意味着IDE不再同时显式多个表单和代码模块。当打开对象的源代码时,IDE在它的主工作区域为工作的对象添加一个新的选项卡。

  IDE还包括一个叫作任务表(Task List)的新窗口。它的内容由IDE创建的项目组成。例如,如果在试图编译一个工程时收到一个错误,VB在任务表里创建一个项目来解释这个错误。你能直接向任务表里添加项目,或者通过在代码里以 "TODO:"开始一个注释行,你可以在代码位置和任务之间建立联系。我喜欢Microsoft实现任务表的方式;在程序出炉前,都需要完成些什么?估计它能帮我省掉很多时间和麻烦。看到它时,你最容易产生的一个想法就是:以前怎么就没人想到它呢?

  你能注意到的另一个变化就是:VB.NET的表单。Microsoft废弃了旧的表单引擎而使用Windows Form代替它。所有基于 CLR的语言都使用Windows Form引擎。相对于VB6的表单引擎,它有几个重要的改进。例如,Windows Form让你能创建能自动调整组件尺寸的表单,并允许将控件锚定在表单里的特定位置。换句话说,不再需要使用第三方控件就能完成这些特殊任务。Windows Form还允许表演像透明表单这样的很酷的技术。

  过去,VB隐藏了建立表单的所有魔术。你使用IDE设计表单并把代码添加到Initialize事件上,但你没有手段来控制这两点之间的过程。现在,表单就是一个类,它包含用来建立表单所有的代码。我把这些代码称为肥料代码,因为大多数开发者希望远远离开它们,越远越好。要想可靠地弄坏你的程序,没有比折腾这些代码更好的办法了。另一方面,技术娴熟的用户可以通过这些代码做很多很酷的事,因为它让你能走到VB.NET表单的幕后。要是你不想看到这些代码你也能不看,因为新代码编辑器有展开和折叠代码区的功能,并且这些肥料代码是默认折叠的。代码编辑器还有几个很酷的新功能。例如,现在它自动为你缩排所有代码(而且还干得不错),它还有内置的显示行号功能。

http://www.qqread.com/vbdotnet/z667104002.html进入讨论组讨论。
上一页 1 2 3 4 5 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章