TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to VBNET

VB.NET Extension Method

Use the Extension attribute from System.Runtime.CompilerServices to create an extension method.
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.Class
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: This returns the final char in a string. It first checks that the string is not Nothing, and has one or more chars.

Nothing

Tip: In the Extensions module, we use the <Extension()> syntax. The parameter String is the instance the extension method is called upon.

Info: You can have more parameters on an extension method. The first one is always the instance the method is called upon.

Important: The System.Runtime.CompilerServices namespace must be imported. This provides access to the Extension attribute.

VB.NET program that uses Extension method 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 Module Output C ? ?
Discussion. 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. This eliminates the need to remember a Class name.
In my programs, I often use extension methods to test characters and strings. For example, I use a "IsUpperOrDigit" extension method. No such method exists in the .NET Framework, but the implementation is obvious.

Caution: I usually end up with too many extension methods. It is preferable to limit the number, and have strict requirements.

Summary. An extension method changes the syntax for calling a method. It makes a non-Class method look like a Class method. This sometimes leads to confusion and excess complexity. But it often can yield simpler programs that are easier to read.LINQ
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf