only for RuBoard |
All classes are members of some namespace. You can think of a namespace as a user -defined scopean organizational construct that allows you to group your classes in a meaningful way and uniquely identify your classes and their members in case of naming conflicts. The Hello class from Example 2-1 is a member of a namespace called Greeting denoted by the Namespace block surrounding its definition. Even if the namespace block were removed, the Hello class would still be considered a member of the root namespace , which is scoped to the executable.
Every time anything is compiled with VB, two class libraries mscorlib.dll and Microsoft.VisualBasic.dll are referenced implicitly. The latter contains classes that provide backward compatibility to earlier versions of Visual Basic, while the former contains portions of the System and several other namespaces. Notice the second line of code in Example 2-1:
Imports System
This line brings the System namespace into the scope of the current file, hello.vb . This is done for the benefit of the call to Console.WriteLine , which writes a message to the console window. Without the Imports directive, the Console class could be referred to only through its namespace, which means the call would look like this:
Public Class Hello Public Sub Write(ByVal value As String) System.Console.WriteLine("Hello, {0}!", value) End Sub End Class
This particular situation is not too bad, but if the file contained several calls to Console.WriteLine , things could get ugly. As most of the .NET class library is contained within the System namespace, importing it is usually your best option.
Framework OrganizationThe System namespace is defined in mscorlib.dll and System.dll. Although mscorlib.dll is referenced by the compiler automatically, System.dll is not. If you need to use a class from a namespace in System.dll (or any other portion of the .NET class library), you have to add a reference to it when you compile with the /r compiler option. For example: vbc /t:exe /r:system.dll code.vb Other major portions of .NET include:
|
only for RuBoard |