Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > VB.NET > Visual Basic 9.0 前沿播报·静态篇(四)嵌套函数和Closure
【标  题】:Visual Basic 9.0 前沿播报·静态篇(四)嵌套函数和Closure
【关键字】:Visual,Basic,9.0,Closure
【来  源】:http://blog.joycode.com/ninputer/archive/2005/09/19/63621.aspx

Visual Basic 9.0 前沿播报·静态篇(四)嵌套函数和Closure

Your Ad Here
为了支持Linq平台所支持的查询特性,VB9必须引入少量“函数式编程(FP)”的特性。本次所介绍的嵌套函数和Closue特性就是最重要的一个环节。在我们探讨为什么引入这样一些特性之前,先来看看这个特性是什么样的。
VB9允许在过程内部定义函数或子程序,如:
Public Sub MyProc() Sub Nested() 'Code here End Sub End Sub
首先能够想到的第一个用途就是,一个帮助函数(HelperFunction)可以仅供某个过程单独使用,在这个过程外部无法访问到这个过程定义的嵌套函数。这与Delphi的嵌套函数类似。注意,嵌套函数仅可以在定义之后的上下文中访问。下面这个特性就是嵌套函数与传统函数最大的不同:
Public Sub MyProc() Dim x As Integer Sub Nested(i As Integer) x = i End Sub 'Invoke subroutine Nested(20) Console.WriteLine(x); End Sub

嵌套函数可以访问到外部过程中的变量,这个特性叫做Closure。有了Closure,我们就可以生成规则可变化的函数,以便实现延迟计算,这就是FP一个基本功能。VB9的内嵌函数Closure可能是通过Tuple特性来实现的,不过目前还没有关于原理的进一步细节。VB9内嵌函数相对于C#的匿名函数,主要有两个优点:

1。无需委托即可调用,可反复调用。当需要委托时,可通过AddressOf获取。
2。可直接递归。(当然,高手可以用Y算子,后话了……)

Visual Basic还考虑增加匿名内嵌函数的表达方式,就是众所周知的Lambda表达式。但是目前还没有语法放出来,我就先不介绍了。

Visual Basic 9.0 前沿播报·静态篇(五)查询包含:【上一篇】
Visual Basic 9.0 前沿播报·静态篇(三)扩展方法:【下一篇】
【相关文章】
  • Visual Basic 9.0 前沿播报·静态篇(五)查询包含
  • Visual Basic 9.0 前沿播报·静态篇(六)松弛委托和可为空类型语法增强
  • Visual Basic 9.0 前沿播报·动态篇(一)动态标识符
  • Visual Basic 9.0 前沿播报·动态篇(二)动态接口
  • Visual Basic 9.0 前沿播报·动态篇(三)XML字面量和XML后期绑定啊
  • Visual Studio 2005 & SQL Sever 2005 RTM Released!
  • Visual Studio 2005 Team Suite (VSTS) 也可以下载了!
  • 小程序:Word 文档批量查找/替换 (Visual Basic 6.0)
  • 新春送礼:Visual Studio.NET墙纸及桌面主题
  • Visual Studio Team System 1204 CTP Extensibility Kit & MSF Agile 文档
  • 【随机文章】
  • 黑客盯准安全软件
  • TV游戏市场及市场竞争分析
  • 菜鸟必看 揭开系统资源的神秘面纱
  • javascript 正则表达式中的特殊字符
  • Iptables 中文 man 文档[ZT]
  • 出人头地、光宗耀祖,都不是那么回事
  • 无线局域网故障解决方法
  • 怎样添加大的xml文件(By Dustin Metzgar)
  • Google Page 推出 gadets 功能
  • 企业级室外无线网络桥接器
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.