您的位置:首页 > 编程语言 > VB

Visual Basic 2005新功能点评——插入代码片断

2004-07-29 16:07 295 查看
关键词:VB2005 VB.NET Whidbey VB8.0
Visual Basic 2005吸引人的地方之一就是它大幅增加了开发效率,其中一大体现就是本期要介绍的插入代码片断。代码片断大家都很熟悉,就是一些常见短小的代码。我们在开中常常遇到一些反复使用的代码片断,比如Try...Catch块、操作字符串和访问注册表的代码等等。每次输入这些代码十分麻烦,因为每次使用大部分都很相似,只有少数地方有变化,却要照单输入。Visual Basic 2005为我们增加了“插入代码片断”的功能,可以用鼠标轻轻一点,就插入我们所需的代码片断。Visual Basic 2005已经内置了大量的片断,因此遇到我们不熟悉的任务时,可以先看看有什么现成片断可以用,实在是方便极了!
首先我们看看如何插入代码片断,在要插入片断的地方单击鼠标右键,然后选择“Insert Snippet”,如图所示:



接下来就会弹出一个选择代码片断类别的菜单。有相当丰富的类别可用,如访问数据、网络连接、Visual Basic语言和Windows操作系统等等。如图所示:



每个类别下面都有很多片断,片段的内容设计到播放音乐、读取XML文件、遍历窗体控件等等。如图所示:



现在我们插入一个片断试试看,比如“求两个日期的间隔”,这曾经是个网络上相当普遍的问题。插入片断后显示如下的代码:
' Click for more: 'ms-help://MS.VSCC.v80/MS.MSDNQTR.80.en/commoner/redir/redirect.htm?keyword="688f80b8-002b-49eb-833e-738041b81508"'
Dim oldDate As Date = #1/1/2002#
Dim newDate As Date = Now
Dim differenceInDays As Long = DateDiff(DateInterval.Day, oldDate, newDate)
Dim spanFromDays As TimeSpan = New TimeSpan(CInt(differenceInDays), 0, 0, 0)
这里面有几个相当有趣的地方,首先那条注释中包含了关于此片断帮助的链接,如果对此片断的功能有疑问,可以直接通过链接查看帮助(多么体贴的设计)。注意代码中有两处黄色区域,这些是可替换代码的区域。单击Tab键,光标将自动在所有可替换区域之间跳转。如此可以快速地将这些区域替换成自己的内容。这些替换区域可以长时间保持可替换状态。
在过程内部可以插入的片断与在类/结构的声明区域或命名空间中可插入的片断是不一样的。比如下面这个片断只能在类的声明区域插入,其作用是响应系统桌面变化的信息:
' Click for more: 'ms-help://MS.VSCC.v80/MS.MSDNQTR.80.en/commoner/redir/redirect.htm?keyword="2e578cf5-b675-4ffe-a91f-17be0015df36"'
Private Sub HookUpEvent()
AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _
AddressOf UserPreferenceChangedSub
End Sub

Private Sub UserPreferenceChangedSub(ByVal sender As System.Object, _
ByVal e As Microsoft.Win32.UserPreferenceChangedEventArgs)
If (e.Category = Microsoft.Win32.UserPreferenceCategory.Desktop) Then
MsgBox("Desktop changed.")
End If
End Sub
这段代码的功能一般的VB程序员很难写出,如果没有插入片断,不知道要费多少功夫了。除了内置的片断以外,我们还常常需要插入自己想要的代码。比如对于我来说,我常常需要书写一个将私有字段封装为属性的代码片断。对于这种需求,Visual Basic 2005还提供了“创建代码片断”的功能。如图,现选中想要制作成片断的代码,再从上下文菜单中选择“Create Snippet”功能。



接下来,我们可以通过片段设计器设置片段中的可替换区域,所属类别等信息,如图所示:



所有可插入的片断在实质上都是一小段XML代码。这项功能在当前版本的Visual Studio 2005预览版本中还没有完成,我们期待在正式版本中更佳表现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: