【编者按】:网学网ASP.net为您提供Visual Basic 2008中的隐藏特性参考,解决您在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)
如果加上类型推断,代码就更简单了。
3) 对象初始化(Object Initializers)
总的来说,在.net framework里,对象初始化是一种类似于把Dim和statement combined整合在一起的表达式。这样使得参数构造器多少让人容易接受一些:
Dim strm As New StreamWriter( _ New FileStream("C:\out.txt",FileMode.OpenOrCreate) _ With {.Position = 10})
对象初始化使得创建一个数组对象更加容易:
Dim Capitals() As City = {New City With {.Name = "Antanarivo", .Country = "Madagascar"}, _ New City With {.Name = "Belmopan", .Country = "Belize"}, _ New City With {.Name = "Monaco", .Country = "Monaco"}, _ New City With {.Country = "Palau", .Name = "Koror"}}
4) Nullable
Nullable 是一种特性,可能你知道但没有关注过。它是一个基本的.NET 表达式,专门针对nullable类型,主要用于LINQ。Nullable支持你写一段代码,其中的属性以null值传播。例如下面这点代码,在Country type中有个independence property 是nullable date。
Dim virginIslands As New Country With {.Independence = Nothing} Dim palau As New Country With {.Independence = #10/1/1994#} Dim vILength = #8/24/2005# - virginIslands.Independence '' Nothing Dim pLength = #8/24/2005# - palau.Independence '' 3980.00:00:00
5) LINQ to DataSet
它意味着你可以不用调用其他数据访问技术就能收获LINQ的好处。先填充一个DataSet,然后就可以对这个DataSet进行查询。
Me.EmployeesTableAdapter.Fill(Me.NORTHWNDDataSet.Employees) Dim query = From emp In Me.NORTHWNDDataSet.Employees _ Where emp.Country = "USA" _ Order By emp.HireDate _ Select emp Me.EmployeesBindingSource.DataSource = query
本新闻共2页,当前在第1页 1 2