11

VB.NET でネストされた関数を宣言するにはどうすればよいですか? たとえば、次のようなことをしたい:

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

ただし、関数が閉じられていないため、このステートメントは VB.NET では無効です。

4

2 に答える 2

20

ラムダ式の書き方を尋ねていますか?

ラムダ式は、デリゲートが有効な場所であればどこでも使用できる、名前のない関数またはサブルーチンです。ラムダ式は、関数またはサブルーチンにすることができ、単一行または複数行にすることができます。現在のスコープからラムダ式に値を渡すことができます。

標準の関数またはサブルーチンを作成するのと同じように、Function または Sub キーワードを使用してラムダ式を作成します。ただし、ラムダ式はステートメントに含まれます。

たとえば、次のコードは「Hello World!」を出力します。

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

その他の例については、こちらを参照してください: VB.NET ラムダ式

于 2011-01-09T09:34:46.867 に答える
3

ご指摘のとおり、これは不可能です。

いくつかのオプションがあります

  • Function two同じクラス内のプライベート関数である必要があるため、から呼び出すことができますFunction one
  • クラスでネストされたクラスまたは構造を作成し、再びプライベートにして、その上でメソッドを呼び出します。
于 2011-01-09T09:16:24.517 に答える