技术开发 频道

Visual Basic 2008中的隐藏特性


    最近我要写一些大家在以前的博客中没有看到的关于Visual Basic和Visual Studio 2008的新东西,我把它叫做隐藏宝石。我曾提到过在VS2008中的一些特性我很喜欢,还炫耀过智能感知(Intellisense )的改善,尤其是对关键字、本地变量和表达式,自动完成语句的改进。在过去,我还提到过一个新的语法特性,称之为Relaxed Delegates,它允许你为事件(event)提供一个可替代的签名(alternate signatures)。以上这些都是很好的特性,但我今天要说的不是这些,是隐藏宝石(可能这些你在一些C#的文章中见过了,在Visual Basic 2008中一样炫)。

   我挑选出了10个最重要的特性,只是简单的介绍一下,有兴趣的可以继续深入研究。
   首先,从一个基调特性(keynote feature)开始。

0)多个target Framework支持(Multi-targetting)

    简单的说,Multi-targetting支持你在VS2008或VB9下用.NET 2.0 framework进行编译。下面我将要讲到的所有特性都在.NET 2.0下有效,所以当你打开Visual Studio创建一个project以后,把framework target设置为2.0(除了第5和第7项,因为它们需要LINQ到Objects和XML API而LINQ是在.NET 3.5才推出)。如图:



1) 输入推断(Type Inference)

   在Visual Basic 9里面,下面的这一小段代码以及Nothing都是延迟绑定(late-bound)——在编译时(compile tine)一切都是延迟绑定,这就意味着你可以得到智能感知和输入推断。

Dim dialog = New OpenFileDialog() 

Dim result = dialog.ShowDialog()

Dim printStr = "C:\"

If result = Windows.Forms.DialogResult.OK Then

printStr = dialog.FileName

End If

MsgBox(printStr)




 

    这使得在输入代码时更加快捷,简单和准确。

2) IF操作符

    还记得吗,IIF函数能返回一个对象(Object),这意味着你不需要通过智能感知或类型推断就可以得到默认的返回值(Object类型)。如果你坚持要类型安全或代码前绑定,可以强制转换,代码如下:

Dim intC As Integer = CInt(IIf(intA = intB, intA, intB - 1)) 


 
现在用IF操作符,你可以这么写:

Dim intD As Integer = If(intA = intB, intA, intB) 







 

 

 

 

 

0
相关文章