如何在VB.NET中声明嵌套函数?

时间:2011-01-09 09:03:15

标签: .net vb.net function nested-function

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

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

但是,由于未关闭的功能,此语句在VB.NET中无效。

2 个答案:

答案 0 :(得分:16)

您是否在询问如何撰写lambda expression

  

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 Expression

答案 1 :(得分:2)

如你所知,这是不可能的。

你有几个选择

  • Function two成为同一个班级中的私人函数,因此您可以从Function one调用它。
  • 在类上创建一个嵌套类或结构,再次为private,并在其上调用方法。