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

dohp0rv5  于 2023-11-20  发布在  .NET
关注(0)|答案(3)|浏览(177)

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

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

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

gpfsuwkq

gpfsuwkq1#

你是在问如何写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

ftf50wuq

ftf50wuq2#

正如你所指出的,这是不可能的。
你有几种选择

  • Function two成为同一个类中的私有函数,这样你就可以从Function one调用它。
  • 创建一个嵌套类或类上的结构,同样是私有的,并调用其方法。
juud5qan

juud5qan3#

Lambda表达式是近年来添加到vb.net的:https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/procedures/lambda-expressions
在现代VB中,你可以做以下事情:

Function foo() as String
        Dim _bar = Function()
                       return "bar"
                   End Function

        return "foo " + _bar()
    End Function

字符串

相关问题