你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
Visual Basic 9不完全入门之语法增强
 
为什么增强?

  由于 .Net Framework 3.5 中许多修改与扩展触及 .Net Framework 2.0 中的已有类(如 LINQ),但又要保证向下兼容,所以微软的设计团队对现有 Visual Basic 语法作出了一些增强。与语法糖一样,它们也是编译时由编译器负责完成的。

  增强了什么?

  ·扩展方法

  ·松弛委托

  ·怎么使用它?

  实际上,这一组功能主要面对的是类库设计人员

  1. 扩展方法

  扩展方法用于对已有 CLR 类库或是其他类库中的方法进行扩展,事实上也是“语法糖”的一种,只不过更大些,更重要些。在 .Net Framework 3.5 中,为了对已有 CLR 中的类型进行拓展,使其可以使用 LINQ 的查询方式,多处使用了这种扩展。实质上,扩展方法是编译时将调用的函数指向具体的扩展方法,从而达到“扩展”的目的。

  扩展方法必须为 Shared(C# 中的 Static),且必须位于 Module(C# 中的 Static Class)中。

  示例代码

Imports System.Runtime.CompilerServices
Public Module SampleModule Sample
<Extension()> _
Public Function MySum()Function MySum(ByVal [Me] As IEnumerable(Of Integer)) As Integer
 Dim I As Integer
 For Each Obj As Integer In [Me]
  I += Obj
 Next
 Return I
End Function
End Module

  扩展方法仅作用于该 Namespace 中(否则不都乱套了),或用 Imports 引入。执行 LINQ 需要 Imports System.LINQ 命名空间也是一样的道理。

  2. 松弛委托

  Visual Basic 9 之前的版本中,绑定到委托标识符的方法必须完全匹配委托类型的签名。这带来了许多不必要的麻烦,比如在为 Thread 绑定方法时弱类型带来的痛苦。

  而在 Visual Basic 9 中,委托的绑定和定义将允许宽松的类型匹配,只要方法中参数类型能够隐式转换到目标签名。这里使用一个典型的范例,创建一个 New Thread。按装配脑袋的说法,松弛委托可以更松些,把 SampleSub 中的参数一并去掉,依旧可以编译完成...

  示例代码

'在 Visual Basic 8 中,你不可能将这个 Sub 绑定到 ThreadStart 上,但在 VB9 中,一切都成为可能
Public Sub SampleSub()Sub SampleSub(Args As String)
End Sub
'一切都是那么的简单!
Dim Thread As New Thread(AddressOf SampleSub)
Thread.Start()

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089