' Visual Basic 2008 9.0 .NET Examples - Lambda Expressions - New in Visual Basic 2008 - 9.0 : Option Infer On Option Strict On Public Class Example1 Public Delegate Function SomeDelegate(ByVal value As Integer) As Integer Public Shared Sub Main() Dim value1 As Integer ' Dim delegate1 As SomeDelegate = _ New SomeDelegate(AddressOf SomeFunction) ' (1) value1 = delegate1.Invoke(5) Console.WriteLine(value1) ' Dim delegate2 As SomeDelegate = AddressOf SomeFunction ' (2) value1 = delegate2.Invoke(5) Console.WriteLine(value1) ' Dim delegate3 = New SomeDelegate(AddressOf SomeFunction) ' (3) value1 = delegate3.Invoke(5) Console.WriteLine(value1) ' Dim delegate4 As Func(Of Integer, Integer) = _ New Func(Of Integer, Integer)(AddressOf SomeFunction) ' (4) value1 = delegate4.Invoke(5) Console.WriteLine(value1) ' Dim delegate5 As Func(Of Integer, Integer) = _ AddressOf SomeFunction ' (5) value1 = delegate5.Invoke(5) Console.WriteLine(value1) ' Dim delegate6 = _ New Func(Of Integer, Integer)(AddressOf SomeFunction) ' (6) value1 = delegate6.Invoke(5) Console.WriteLine(value1) ' Console.ReadLine() End Sub Public Shared Function SomeFunction(ByVal value As Integer) As Integer SomeFunction = value * 2 End Function End Class Public Class Example2 Public Shared Sub Main() Dim value1 As Integer ' Dim delegate1 As Example1.SomeDelegate = _ Function(value As Integer) value * 2 ' (1) value1 = delegate1.Invoke(5) Console.WriteLine(value1) ' Dim delegate2 As Func(Of Integer, Integer) = _ Function(value As Integer) value * 2 ' (2) value1 = delegate2.Invoke(5) Console.WriteLine(value1) ' Dim delegate3 = Function(value As Integer) value * 2 ' (3) value1 = delegate3.Invoke(5) Console.WriteLine(value1) ' value1 = (Function(value As Integer) value * 2).Invoke(5) Console.WriteLine(value1) ' Console.WriteLine((Function(value As Integer) value * 2).Invoke(5)) ' Console.ReadLine() End Sub End Class Public Class Example4 Public Shared Sub Main() Dim delegate1 = Function(arg1 As Integer) _ Function(arg2 As Integer) arg1 + arg2 Dim value1 As Integer = delegate1.Invoke(2).Invoke(3) Console.WriteLine(value1) ' Console.ReadLine() End Sub End Class Public Class Example5 Public Delegate Function SomeDelegate(ByVal value As Integer) As Integer Public Shared Sub Main() Dim delegate1 As SomeDelegate = Function() 1 Console.WriteLine(delegate1.Invoke(123)) ' Dim delegate2 As SomeDelegate = Function() 2S Console.WriteLine(delegate2.Invoke(123)) ' 'Dim delegate3 As SomeDelegate = Function() 3L ' (1) ' Dim delegate4 As SomeDelegate = Function(value As Long) 4 Console.WriteLine(delegate4.Invoke(123)) ' 'Dim delegate5 As SomeDelegate = Function(value As Short) 5 ' (2) ' Console.ReadLine() End Sub End Class ' Visit www.studyvb.com for more examples. Copyright 2003-2008 De Wolf.