C# Namespace

Namespaces play an important role in managing related classes in C#. The .NET Framework uses namespaces to organize its built-in classes. For example, there are some built-in namespaces in .NET such as System, System.Linq, System.Web, etc. Each namespace contains related classes.

A namespace is a container for classes and namespaces. The namespace also gives unique names to its classes thereby you can have the same class name in different namespaces.

In C#, a namespace can be defined using the namespace keyword.

Example: Namespace
namespace School
{
    // define classes here

}

The following namespace contains the Student and Course classes.

Example: Namespace
namespace School
{
    class Student
    {

    }

    class Course
    {

    }
}

Classes under the same namespace can be referred to as namespace.classname syntax. For example, the Student class can be accessed as School.Student.

Example: Refer a Class with Namespace
namespace CSharpTutorials
{
    class Program
    {
        static void Main(string[] args)
        {
            School.Student std = new School.Student();
        
            School.Course cs = new School.Course();
        }
    }
}

To use classes under a namespace without the fully qualified name, import the namespace with the using keyword at the top of C# class file.

Example: Namespace
using System; //built-in namespace
using School;

namespace CSharpTutorials
{
    class Program
    {
        static void Main(string[] args)
        {
            Student std = new Student();
        }
    }
}

A namespace can contain other namespaces. Inner namespaces can be separated using (.).

Example: Namespace
namespace School.Education
{
    class Student
    {

    }
}

In the above example, the fully qualified class name is School.Education.Student.

Beginning with C# 10, you can declare a namespace for all types defined in that file without wrapping classes inside curly braces { .. }, as shown below.

Example: C# 10 Namespace
namespace School.Education
    
class Student
{

}