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

发布于 2024-10-10 18:04:18 字数 162 浏览 5 评论 0原文

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

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

但是,由于未封闭功能,该语句在VB.NET中无效。

How would I declare a nested function in VB.NET? For example, I want to do something like this:

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

However, this statement is invalid in VB.NET because of unclosed function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

近箐 2024-10-17 18:04:18

您是否询问如何编写 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 表达式< /a>

Are you asking how to write a lambda expression?

A lambda expression is a function or subroutine without a name that can be used wherever a delegate is valid. Lambda expressions can be functions or subroutines and can be single-line or multi-line. You can pass values from the current scope to a lambda expression.

You create lambda expressions by using the Function or Sub keyword, just as you create a standard function or subroutine. However, lambda expressions are included in a statement.

For example, the following code will print "Hello World!":

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

For more examples, see here: VB.NET Lambda Expression

-黛色若梦 2024-10-17 18:04:18

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

您有多种选择

  • 函数二成为同一类中的私有函数,因此您可以从函数一调用它。
  • 在类上创建一个嵌套类或结构(同样是私有的),然后调用其方法。

As you noted, this is not possible.

You have several options

  • have Function two be a private function within the same class, so you can call it from Function one.
  • Create a nested class or structure on the class, again private, and call methods on that.
趁年轻赶紧闹 2024-10-17 18:04:18

近年来,VB.net 添加了 Lambda 表达式: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

Lambda expressions were added in recent years to vb.net: https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/procedures/lambda-expressions

In Modern vb, you do the following:

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

        return "foo " + _bar()
    End Function
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文