首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 软件频道>Visual Basic 9不完全入门之语法增强

Visual Basic 9不完全入门之语法增强

2007-08-24 15:48作者:John Chen出处:论坛整理责任编辑:方舟

  本文转自博客园,文中内容不代表本站观点,仅提供参考。

  为什么增强?

  由于 .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()

  本文作者保留全部权力,禁止用于商业用途,非商业用途转载请附加 www.soobb.com链接。

  查阅关于 vb9 的全部文档

关注此文的读者还看过:

返回软件频道首页

共1页。 1
  • 1.Visual Basic 9不完全入门之语法增强

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络