Namespace
Namespace is a collection of types
A namespace can contain one or more of the
following types: class, struct, interface, enum and delegate
A namespace can have one or more sub
namespaces defined in it.
Namespace is used to segregate types
defined in a program
Namespace also avoids collision between
names of types in a program.
Namespace performs logical segregation of
types in a program. That is the types are present in the same program but can
be resolved only with the help of namespace that contains them.
By default a program has a namespace called
<global namespace>
using keyword
using keyword is used to resolve a type for
its namespace
When a type is referred by a code in a
program the compiler searches for the type in the namespace in which the code
is present. If a type is found then it is used for the code.
class One { } // class 'One'
in <global namespace>
class class1
{
static void Main(string[]
args)
{
One obj
= new One(); // code in <global namesapce>
}
}
Both the code and the class are present in
the same namespace, hence object of the class ‘One’ will be created by the
code. If no type is found in the namespace of the code then a compile time
error is displayed.
namespace Sample
{
class One { } // class 'One' in <Sample namespace>
}
class class1
{
static void Main(string[]
args)
{
One obj = new
One(); // code in <global namesapce>
}
}
If using directive is present in the namespace of the code, then the
compiler searches for the type to be resolved in the namespace mentioned in the
using directive. If a type is found then it is used for the code.
using Sample; // using section in <global namespace>
namespace Sample
{
class One { } // class 'One' in <Sample namespace>
}
class class1
{
static void Main(string[]
args)
{
One obj
= new One(); // code in <global namesapce>
}
}
In the above program an object of type One
is successfully created by the code.
|