Bagikan melalui


Ekspresi Fungsi (Visual Basic)

Mendeklarasikan parameter dan kode yang menentukan ekspresi lambda fungsi.

Sintaksis

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

Bagian

Istilah Definisi
parameterlist Fakultatif. Daftar nama variabel lokal yang mewakili parameter prosedur ini. Tanda kurung harus ada bahkan ketika daftar kosong. Lihat Daftar Parameter.
expression Dibutuhkan. Ekspresi tunggal. Jenis ekspresi adalah jenis pengembalian fungsi.
statements Dibutuhkan. Daftar pernyataan yang mengembalikan nilai dengan menggunakan Return pernyataan . (Lihat Pernyataan Pengembalian.) Jenis nilai yang dikembalikan adalah jenis pengembalian fungsi.

Komentar

Ekspresi lambda adalah fungsi tanpa nama yang menghitung dan mengembalikan nilai. Anda dapat menggunakan ekspresi lambda di mana saja Anda dapat menggunakan jenis delegasi, kecuali sebagai argumen ke RemoveHandler. Untuk informasi selengkapnya tentang delegasi, dan penggunaan ekspresi lambda dengan delegasi, lihat Mendelegasikan Pernyataan dan Konversi Delegasi Santai.

Sintaks Ekspresi Lambda

Sintaks ekspresi lambda menyerupan fungsi standar. Perbedaannya adalah sebagai berikut:

  • Ekspresi lambda tidak memiliki nama.

  • Ekspresi Lambda tidak dapat memiliki pengubah, seperti Overloads atau Overrides.

  • Ekspresi Lambda tidak menggunakan As klausul untuk menunjuk jenis pengembalian fungsi. Sebagai gantinya, jenis disimpulkan dari nilai yang dievaluasi oleh isi ekspresi lambda baris tunggal, atau nilai pengembalian ekspresi lambda multibaris. Misalnya, jika isi ekspresi lambda baris tunggal adalah Where cust.City = "London", jenis pengembaliannya adalah Boolean.

  • Isi ekspresi lambda baris tunggal harus berupa ekspresi, bukan pernyataan. Isi dapat terdiri dari panggilan ke prosedur fungsi, tetapi bukan panggilan ke sub prosedur.

  • Baik semua parameter harus memiliki jenis data yang ditentukan atau semua harus disimpulkan.

  • Parameter opsional dan Paramarray tidak diizinkan.

  • Parameter generik tidak diizinkan.

Contoh 1

Contoh berikut menunjukkan dua cara untuk membuat ekspresi lambda sederhana. Yang pertama menggunakan Dim untuk memberikan nama untuk fungsi tersebut. Untuk memanggil fungsi, Anda mengirim nilai untuk parameter .

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

Contoh 2

Atau, Anda dapat mendeklarasikan dan menjalankan fungsi secara bersamaan.

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

Contoh 3

Berikut ini adalah contoh ekspresi lambda yang menaikkan argumennya dan mengembalikan nilai . Contoh menunjukkan sintaks ekspresi lambda satu baris dan multibaris untuk fungsi. Untuk contoh selengkapnya, lihat Ekspresi Lambda.

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))

Contoh 4

Ekspresi Lambda mendasari banyak operator kueri di Language-Integrated Query (LINQ), dan dapat digunakan secara eksplisit dalam kueri berbasis metode. Contoh berikut menunjukkan kueri LINQ umum, diikuti dengan terjemahan kueri ke dalam format metode.

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)

Untuk informasi selengkapnya tentang metode kueri, lihat Kueri. Untuk informasi selengkapnya tentang operator kueri standar, lihat Gambaran Umum Operator Kueri Standar.

Lihat juga