Visual Basic 2005新功能点评(二)——有用的小语法
Visual Basic 2005除了增加令人振奋的新功能以外,还增加了很多实用的小语法。比如本文要介绍的Continue语句、Using语句、Clear语句、数组定义的新语法、Global关键字等。
一、Continue语句
以前Visual Basic语法的一个重要缺陷是无法提前结束单前一轮循环,直接进入下一轮循环。如果需要此功能,只能用GoTo语句。现在,Visual Basic 2005增加了Continue语句来实现此功能。Continue必须紧接For、Do或While语句,表示提前进入该循环的下一轮:
For i As Integer = 1 To 100 'Some codes Continue For 'Some other codesNext
和Exit语句一样,Continue语句可以跨越不同的循环执行,如:
For i As Integer = -10 To 10
Do While j <= GetInteger(i)
'codes If i > 0 Then Continue For 'codes Loop
Next
二、Using语句
在C#里有一种using语句,在using语句中初始化的变量可以自动调用Dispose方法而被处置。using语句的实质是一个try...finally结构。现在Visual Basic 2005也具有这个语法:
Using r As New StreamReader(”c:\\mytext.txt”)
s = r.ReadToEnd()
End Using
当语句跳出Using块时,r.Dispose()将自动被调用,确保非托管资源被顺利释放。使用Using语句要注意,Using中的变量必需实现IDisposable接口,而且要在进入Using前正确初始化。
三、数组的新语法
以前VB的数组支持下界从指定的数值开始,而VB.NET则要求数组下界必须从0开始。这个改变让很多开发者感到别扭。Visual Basic 2005增加了一个新的语法,让有指定下界习惯的开发者“感觉好一点”:
Dim a(0 To 100) As Integer
其实,还是只能从0开始,但是现在可读性更高了,一眼就可以看出数组的下界和上界。
四、Global关键字
在Visual Basic .NET中,命名空间的判定上有一个问题,那就是它在寻找命名空间时总是从最近的范围开始。见下列代码:
Namespace MySpace
Namespace System
Public Module EntryPoint
Public Sub Main()
Dim r As Double r = System.Math.Sin(1.345)
End Sub
End Module
End Namespace
End Namespace
这段代码能正确编译吗?答案是不能,它会提示Math不在System命名空间中。为了解决这个问题,Visual Basic 2005提供了Global关键字,永远代表根命名空间。使用了Global之后,Visual Basic就可以从根命名空间开始查找,如上面那段代码中的黑体部分改成:
r = Global.System.Math.Sin(1.345)
就可以正确执行了。
推荐到鲜果:


评论
发布者 匿名用户
2007-8-17 15:23:31