VB.NET AddressOf Operator

Use the AddressOf operator to specify a Function as a delegate argument.

AddressOf enables delegate Functions. With it we reference a method and use it as the implementation for a delegate. We use the name of a function and specify it where a delegate is required.LambdaFunction

Example. First, this program introduces the IsThreeLetters Function, which receives a String and returns a Boolean. This Function is used as a delegate. The Main entry point creates a List and adds 3 values to it.List
Then: The List.Find Function is used to find the first 3-letter String in the List instance.
List Find, Exists
AddressOf: The AddressOf operator is used and it references the IsThreeLetters Function. We display the result.
VB.NET program that uses AddressOf Module Module1 Function IsThreeLetters(ByVal value As String) As Boolean Return value.Length = 3 End Function Sub Main() Dim list As List(Of String) = New List(Of String) list.Add("mouse") list.Add("horse") list.Add("dog") Dim value As String = list.Find(AddressOf IsThreeLetters) Console.WriteLine(value) End Sub End Module Output dog

Discussion. In the C# language, you do not need AddressOf. Instead, you can use the method name directly as the delegate. The AddressOf operator may be less confusing. It introduces the context in which the method name should be referenced.
And: It tells you that the method name is just used to acquire a memory address.

Summary. The AddressOf operator provides an excellent way for you to reference an existing Function and turn it into a delegate. This means you do not need to use lambda expression syntax. You can use existing functions.

© 2007-2020 Sam Allen. Send bug reports to info@dotnetperls.com.