本书翻译目的为个人学习和知识共享,其版权属原作者所有,如有侵权,请告知本人,本人将立即对发帖采取处理。
允许转载,但转载时请注明本版权声明信息,禁止用于商业用途!

博客园:韩现龙


Introducing to Microsoft LINQ目录 

   Microsoft Visual Basic9.0的最终版本增强了对语言集成查询(LINQ)的支持。正如C#3.0那样,对Visual Basic9.0的改变并不需要对公共语言运行时(CLR)做任何修改。

   更多信息 关于C#3.0的更多信息,请参阅第2章 “C#语言特性”

  在本章中,我们将讲述一下在Visual Basic9.0中的新语法,在适当的时候将它与C#进行一下对比。在C#和VB9之间有一些差别,有一些特性并不是在二者之间都有的。即便作为一个C#程序员,也请看一下本章。可能Visual Basic 9.0的一些优点在C#中是没有的。至少我们应该能够读懂用为LINQ写的Visual Basic代码。

  如果您偏爱Visual Basic,若想全面高效地理解VB9,您须对VB8的特性有一个全面的了解。读C#代码的能力对于阅读本书的其他部分(因为LINQ的例子是用C#写的)和理解C#3.0及Visual Basic 9.0之间的差别也非常重要。

Visual Basic 9.0 和 Nullable 类型

  Visual Basic 9.0包括了早在C#2.0版本中已经存在的特性。这些特性之一就是可空类型-该类型在LINQ中也经常使用。因此,我们需要快速地对可空类型进行一下描述。

  从对Microsoft .NET2.0的泛型介绍时开始,CLR就向程序员们提供了泛型类Nullable(Of T As Struct),这就满足了程序员们将NULL值赋值给一个值类型的要求。在声明这种类型的一个变量时,我们不必专门地为它声明一个新的类型。

  为了使用此类型,C#2.0对其提供了直接支持。将?前缀到类型名称前,我们就可以使用该类型的可空泛型类了。Visual Basic9.0也用同样的语法提供了同样的功能,如Listing3-1所示:

Listing 3-1: Nullable type declaration

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim a As Integer= 18 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim b As Integer= 24 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim c As Integer= Nothing 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim d As Integer
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
= a + c ' d = 18 + Nothing = Nothing 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
= a + b ' c = 18 + 24 = 42 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性

  普通的Integer变量不可被指定为Nothing,因为它是“值类型”的。在Listing3-1中,我们将c指定为Nothing,并且在一个表达式中将它赋给da+c的结果是Noting,这说明了三值逻辑是典型的可空类型。NULL“值“(在Visual Basic中用Nothing表示)已经和一些使用逻辑操作符的异常被应用进表达式中了。

  一个可空的值(nullable value)不可以被赋值给非空的类型(non-nullable type)。Listing3-2中展示了在将一个可空的值赋给非空类型时所必需的转变:

Listing 3-2: Nullable type conversions

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim k As Integer= 16 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim p As Integer = k ' Compiler error 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim q As Integer = DirectCast( k, Integer ) ' Ok 
微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性
Dim r As Integer = CType( k, Integer ) ' Ok 

微软免费图书《Introducing Microsoft LINQ》翻译Chapter3.1-Visual Basic 9.0语言特性

  关于Visual Basic 9.0中的可空类型的更多信息,请参阅Visual Basic的文档。我们希望这种特性广泛地应用于操作关系型数据库的代码中。

相关文章:

猜你喜欢
相关资源
相似解决方案