Skip to main content

Namespaces in C# With Examples


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

Popular posts from this blog

The String.Join Method in C# Explained

The String.Join Method in C#   The string.Join concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member. Overloads of string.Join Method Description Join(Char, Object[]) Concatenates the string representations of an array of objects, using the specified separator between each member. Join(Char, String[]) Concatenates an array of strings, using the specified separator between each member. Join(String, IEnumerable<String>) Concatenates the members of a constructed IEnumerable<T> collection of type String, using the specified separator between each member. Join(String, Object[]) Concatenates the elements of an object array, using the specified separator between each element. Join(String, String[]) Concatenates all the elements of a string array, usi...

Most Popular Programming Languages in 2020

Most Popular Programming Languages in 2020 In this blog post, you will learn about the most popular programming languages in 2020 for creating the best web applications. Check its pros and cons. Analyzed by technostacks Not very long ago, just a few people were considered to be computer programmers, and the general public viewed them with awe. In this digital age that we are now living in, however, a large number of IT jobs need a solid grasp of one or more programming languages. Whether one wants to develop a mobile app or get a certification for having programming knowledge, or even to learn new skills, one needs to opt for the right programming language. Below mentioned eight most popular programming languages which are in demand for software development and web applications. This is the most used programming languages in 2019 and will be in 2020. For each, there is little information about the language, benefits and its complexity, as well as about its usage. One must...

HashTable in C# with Example

  HashTable in C# with Example Hashtable  is used to store a collection of key/value pairs of different  data types  and are organized based on the hash code of the key.   Generally, the hashtable object will contain buckets to store elements of the collection. The bucket here, is a virtual subgroup of elements within the hashtable and each bucket is associated with a hash code, which is generated based on the key of an element.   In C#, hashtable is same as a  dictionary  object but the only difference is that the  dictionary  object is used to store a key-value pair of same  data type  elements.   When compared with  dictionary  object, the hashtable will provide a lower performance because the hashtable elements are of object type so the boxing and unboxing process will occur when we are storing or retrieving values from the hashtable.   C# HashTable Declaration Hashtable is a non-generic type...