Extension methods are methods (Sub
or Function
) that add functionality to a Type (which may be a Reference Type or a Value Type). These Types may or may not be owned by you.
They may or may not be in the same assembly as the Type they are intended to modify. You can allow an opt-in to your extension methods by isolating them in their own namespace. Or if you prefer you can make them always available by including them in the same namespace as the Type they modify (assuming all the assembly references are in place and correct). See the Entity Framework Core 1.0 project on GitHub for a good example of the opt-in style of extension methods.
Extension methods in VB have a few requirements:
Extension()
attribute.Imports System.Runtime.CompilerServices
Me
if this were a real instance method).