Extension method syntax is available in VB.NET. With it, we call a method in a separate Module
as though it is defined on the Class
.
This sometimes leads to clearer syntax. We use the Extension attribute and implement an extension method in a VB.NET program.
This program introduces an extension method called LastChar
. This method is called upon a String
instance. It is called like a String
method, but it is not defined on the String
type.
LastChar()
returns the final char
in a string
. It first checks that the string
is not Nothing, and has one or more chars.Extension()
syntax. The parameter String
is the instance the extension method is called upon.System.Runtime.CompilerServices
namespace must be imported. This provides access to the Extension attribute.Imports System.Runtime.CompilerServices Module Module1 Sub Main() ' Test extension on a string. Dim v As String = "ABC" Console.WriteLine(v.LastChar()) ' Test nothing value. v = Nothing Console.WriteLine(v.LastChar()) ' Test empty string. v = "" Console.WriteLine(v.LastChar()) End Sub End Module Module Extensions <Extension()> Public Function LastChar(ByVal value As String) As Char ' If string is not nothing, and has at least one char, ' ... return last char. ' Otherwise return a question mark. If Not value = Nothing Then If value.Length >= 1 Then Return value(value.Length - 1) End If End If Return "?"c End Function End ModuleC ? ?
When should you use extension methods in VB.NET programs? If a small and useful method is used often, it may be helpful to turn it into an extension method.
IsUpperOrDigit
" extension method.An extension method changes the syntax for calling a method. It makes a non-Class
method look like a Class
method. This sometimes can yield simpler programs that are easier to read.