次の方法で共有


関数式 (Visual Basic)

関数ラムダ式を定義するパラメーターとコードを宣言します。

構文

Function ( [ parameterlist ] ) expression
- or -
Function ( [ parameterlist ] )
  [ statements ]
End Function

部品

任期 定義
parameterlist 任意。 このプロシージャのパラメーターを表すローカル変数名の一覧。 リストが空の場合でも、かっこが存在する必要があります。 「パラメータリスト」を参照してください
expression 必須。 1 つの式。 式の型は、関数の戻り値の型です。
statements 必須。 Return ステートメントを使用して値を返すステートメントの一覧。 ( Return ステートメントを参照)。返される値の型は、関数の戻り値の型です。

注釈

ラムダ式は、値を計算して返す名前のない関数です。 ラムダ式は、デリゲート型を使用できる任意の場所で使用できますが、 RemoveHandlerの引数として使用することはできません。 デリゲートの詳細と、デリゲートでのラムダ式の使用の詳細については、「 デリゲート ステートメント 」と「 緩やかなデリゲート変換」を参照してください。

ラムダ式の構文

ラムダ式の構文は、標準関数の構文に似ています。 違いは次のとおりです。

  • ラムダ式には名前がありません。

  • ラムダ式は、 OverloadsOverridesなどの修飾子を持つことはできません。

  • ラムダ式では、関数の戻り値の型を指定するために As 句は使用されません。 代わりに、単一行ラムダ式の本体が評価する値、または複数行ラムダ式の戻り値から型が推論されます。 たとえば、1 行のラムダ式の本体が Where cust.City = "London"場合、戻り値の型は Boolean

  • 1 行のラムダ式の本体は、ステートメントではなく式である必要があります。 本体は、関数プロシージャの呼び出しで構成できますが、サブ プロシージャの呼び出しでは構成できません。

  • すべてのパラメーターにデータ型を指定するか、すべて推論する必要があります。

  • 省略可能なパラメーターと Paramarray パラメーターは使用できません。

  • ジェネリック パラメーターは使用できません。

例 1

次の例は、単純なラムダ式を作成する 2 つの方法を示しています。 1 つ目では、 Dim を使用して関数の名前を指定します。 関数を呼び出すには、パラメーターの値を送信します。

Dim add1 = Function(num As Integer) num + 1
' The following line prints 6.
Console.WriteLine(add1(5))

例 2

または、関数を同時に宣言して実行することもできます。

Console.WriteLine((Function(num As Integer) num + 1)(5))

例 3

引数をインクリメントして値を返すラムダ式の例を次に示します。 この例では、関数の単一行と複数行のラムダ式の両方の構文を示します。 その他の例については、「 ラムダ式」を参照してください。

Dim increment1 = Function(x) x + 1
Dim increment2 = Function(x)
                     Return x + 2
                 End Function

' Write the value 2.
Console.WriteLine(increment1(1))

' Write the value 4.
Console.WriteLine(increment2(2))

例 4

ラムダ式は、Language-Integrated クエリ (LINQ) のクエリ演算子の多くに基づいており、メソッドベースのクエリで明示的に使用できます。 次の例は、一般的な LINQ クエリの後に、クエリをメソッド形式に変換する方法を示しています。

Dim londonCusts = From cust In db.Customers
                       Where cust.City = "London"
                       Select cust

' This query is compiled to the following code:
Dim londonCusts = db.Customers.
                  Where(Function(cust) cust.City = "London").
                  Select(Function(cust) cust)

クエリ メソッドの詳細については、「 クエリ」を参照してください。 標準クエリ演算子の詳細については、「標準クエリ演算子の 概要」を参照してください。

こちらも参照ください