11

如何在 VB.NET 中声明嵌套函数?例如,我想做这样的事情:

Function one()
    Function two()
    End Function
End Function

但是,由于未关闭函数,此语句在 VB.NET 中无效。

4

2 回答 2

20

您是在问如何编写lambda 表达式吗?

lambda 表达式是一个没有名称的函数或子例程,可以在委托有效的任何地方使用。Lambda 表达式可以是函数或子例程,可以是单行或多行。您可以将值从当前范围传递到 lambda 表达式。

您可以使用 Function 或 Sub 关键字创建 lambda 表达式,就像创建标准函数或子例程一样。但是,lambda 表达式包含在语句中。

例如,以下代码将打印“Hello World!”:

Dim outputString As Action(Of String) = Sub(x As String)
                                            Console.WriteLine(x)
                                        End Sub
outputString("Hello World!")

有关更多示例,请参见此处:VB.NET Lambda 表达式

于 2011-01-09T09:34:46.867 回答
3

正如您所指出的,这是不可能的。

你有几个选择

  • Function two同一类中的私有函数,因此您可以从Function one.
  • 在该类上创建一个嵌套类或结构,再次私有,并在其上调用方法。
于 2011-01-09T09:16:24.517 回答