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

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

博客园:韩现龙


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



Dim  a  As   Integer =   18  

Dim  b  As   Integer =   24  

Dim  c  As   Integer =   Nothing  

Dim  d  As   Integer

=  a  +  c  '  d = 18 + Nothing = Nothing 

=  a  +  b  '  c = 18 + 24 = 42 

clip_image001[1]

  普通的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

 
Dim  k  As   Integer =   16  

Dim  p  As   Integer   =  k  '  Compiler error 

Dim  q  As   Integer   =   DirectCast ( k,  Integer  )  '  Ok 

Dim  r  As   Integer   =   CType ( k,  Integer  )  '  Ok 

clip_image001[3]

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

转载于:https://www.cnblogs.com/hanxianlong/archive/2008/03/17/ms-free-book-VB9-0-language-features.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值