Namespaces are an organizational construct. They cannot be instantiated (as with New) like a Class. Instead, we use them to separate code into logical parts. They help developers understand code but do not impact execution.
This example program is divided into three classes. The first two classes use custom namespaces—Perls and Ruby. They both contain classes—two independent classes both named Website. Those two classes are not related or linked.
Root namespace In the Properties window, we can set a "Root namespace." I set it to ProgramExample. This contains the other namespaces.
Imports In the third part, we see the Imports directive. We include the Perls namespace, which is nested under the Root namespace.
Main We access the Ruby namespace directly with a composite name. No Imports statement is needed.
Class 1 that uses Namespace: VB.NET
Public Shared Sub Execute()
Public Shared Sub Open()
' This requires the Imports ProgramExample.Perls directive.
' Access namespace directly in a statement.
Discussion. There are many ways to use namespaces in programs. Every program by default uses a Root namespace. This is automatically generated when we create a new project. It can be changed by going to the Project menu and selecting Properties.
Tip We can specify new namespaces with the Namespace keyword. We can place types like Classes inside a Namespace.
Tip 2 To access types within a Namespace, we use Imports or a direct access with a composite name (like Ruby.Website.Open).
Summary. Projects often have special rules for Namespaces. For example, I have seen many projects use company-based identifiers in Namespaces. Naming rules are specified by the project, not the VB.NET language itself.