Namespaces in C#
Namespaces are concepts in C# used to organize and
provide a level of separation of codes. They can be considered as a container
which consists of other namespaces, classes, etc.
A namespace can have following types as its members:
Namespaces (Nested Namespace)
Classes
Interfaces
Structures
Delegates
Namespaces are not mandatory in a C# program, but they
do play an important role in writing cleaner codes and managing larger
projects.
Let's understand the concept of namespace with a real
life scenario. We have a large number of files and folders in our computer.
Imagine how difficult it would be to manage them if they are placed in a single
directory. This is why we put related files and folders in a separate
directory. This helps us to manage our data properly.
The concept of namespace is similar in C#. It helps us
to organize different members by putting related members in the same
namespace.
Namespace also solves the problem of naming
conflict. Two or more classes when put into different namespaces can have same
name.
Defining Namespace in C#
We can define a namespace in C# using the namespace keyword
as shown below
namespace NamespaceName
{
//Body of
namespace
}
Example
using System;
namespace CshapNaijaNamespace
{
public class CsharpnaijaClass
{
public void
CsharpnaijaMethod()
{
Console.WriteLine("Displayed from a Method in a class from
CsharpNaijaNamespace");
}
}
}
In the above example, a namespace CshapNaijaNamespace
is created. It consists of a class CsharpnaijaClass
as its member. CsharpnaijaMethod is a method of class Program.
Accessing Members of Namespace in C#
The members of a namespace can be accessed using
the dot(.) operator. The syntax for accessing the member of namespace
is,
NamespaceName.MemberName
For example, if we need to create an object of CsharpnaijaClass, it can be done as below,
CshapNaijaNamespace.CsharpnaijaClass myClass = new CshapNaijaNamespace.CsharpnaijaClass ();
We have just created an object of CsharpnaijaClass by
accessing the class with dot (.) on the namespace
Introducing
Namespace in C# Program
namespace CshapNaijaNamespace
{
public class CsharpnaijaClass
{
public void
CsharpnaijaMethod()
{
Console.WriteLine("Displayed from a Method in a class from CsharpNaijaNamespace");
}
}
}
namespace TestCsharpnaija
{
public class TestCsharp
{
public void Main(string[] args)
{
CshapNaijaNamespace.CsharpnaijaClass csharpnaijaClass = new
CshapNaijaNamespace.CsharpnaijaClass();
csharpnaijaClass.CsharpnaijaMethod();
}
}
}
When we run the program, the output would be as shown
below
Displayed from a Method in a class from CsharpNaijaNamespace
In the above program, we have created our own
namespace CshapNaijaNamespace and
accessed its members from Main() method inside TestCsharp. As
said earlier, the dot (.) operator is used to access the member of
namespace.
In the Main() method, CsharpnaijaMethod() method is called
using the dot (.) operator.
Using a Namespace in C# [using Keyword]
A namespace can be included in a program using the using
keyword. The syntax is as shown below
using NamespaceName;
For
Instance
using System;
The advantage of this approach is we don't have to
specify the fully qualified name of the members of that namespace every time we
are accessing it.
Once the line using
System; is included at the top of the program. We can write
Console.WriteLine("Hello
World!");
Instead of the fully qualified name i.e.
System.Console.WriteLine("Hello
World!");
Example
using System;
namespace NamespaceTutorial
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Namespace creation Example");
}
}
}
Nested Namespace in C#
A namespace can contain another namespace. It is
called nested namespace. The nested namespace and its members can also be
accessed using the dot (.) operator.
The
syntax for creating nested namespace is as follows:
namespace CsharpNamespace
{
namespace NestedNamespace
{
// Body of
nested namespace
}
}
Example of Nested Namespace in C#
namespace MainNamespace
{
namespace NestedNamespace
{
public class SampleClass
{
public static void myMethod()
{
Console.WriteLine("Nested Namespace Example");
}
}
}
}
namespace MyProgram
{
public class MyClass
{
public static void Main()
{
MainNamespace.NestedNamespace.SampleClass.myMethod();
}
}
}
This example illustrates how nested namespace can be
implemented in C#.
Here, we now have an extra namespace inside MainNamespace called NestedNamespace.
So,
instead of using
MainNamespace.SampleClass.myMethod(),
we have to use MainNamespace. NestedNamespace.SampleClass.myMethod().
Comments
Post a Comment