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

Classes in C# Explained

C# Class Explained A class is nothing but an encapsulation of properties and methods that are used to represent a real-time entity, as explained by Guru99 . For instance, if you want to work with Guest’s data as in our previous DataDriven Web application . The properties of the Guest would be the Id, GuestName, Address, Phone number etc of the Guest. The methods would include the entry and modification of Guest data. All of these operations can be represented as a class in C# as shown below. using System; namespace CsharpnaijaClassTutorial {     public class Guest     {         public int Id { get ; set ; }         public string GuestName { get ; set ; }         public string Address { get ; set ; }         public string WhomToSee { get ; set ; }     ...

ASP.NET MVC Views

Views in ASP.NET MVC Application explained Find a related article By  Steve Smith  and  Luke Latham from Microsoft Corporation here In the Model-View-Controller (MVC) pattern, the  view  handles the application's data presentation and user interaction. A view is an HTML template with embedded  Razor markup . Razor markup is code that interacts with HTML markup to produce a webpage that's sent to the client. In ASP.NET MVC, views are  .cshtml  files that use the  C# programming language  in Razor markup. Usually, view files are grouped into folders named for each of the application's  controllers . The folders are stored in a  Views  folder at the root of the application as shown: The  Home  controller is represented by a  Home  folder inside the  Views  folder.  The  Home  folder contains the views for the  About ,  Contact , and  Index...

ASP.NET MVC Routing

ASP.NET MVC Routing ASP.NET MVC routing is a pattern matching system that is responsible for mapping incoming browser requests to specified MVC controller actions. When the ASP.NET MVC application launches then the application registers one or more patterns with the framework's route table to tell the routing engine what to do with any requests that matches those patterns. When the routing engine receives a request at runtime, it matches that request's URL against the URL patterns registered with it and gives the response according to a pattern match. Routing pattern is as follows A URL is requested from a browser, the URL is parsed (that is, break into controller and action), the parsed URL is compared to registered route pattern in the framework’s route table, if a route is found, its process and send response to the browser with the required response, otherwise, the HTTP 404 error is send to the browser. Route Properties ASP.NET MVC routes are res...